设置:1)笔记本电脑A连接到我家庭网络中的路由器。我有一个无IP域名。我在路由器上进行端口转发,将端口 40000 转发到笔记本电脑 A。笔记本电脑 A 是侦听端口 40000 的“服务器”。
2)我有笔记本电脑B连接到同一个路由器。我在 B 上运行一个“客户端”。它创建了一个带有自己的端口 45000 的套接字(Udp)连接到服务器(域名和端口 40000)并正在发送消息。笔记本电脑 A 收到。一切都很好。
3)但是当我尝试在readmessag(..)中捕获笔记本电脑B(发件人)的地址和端口时,它给了我路由器的IP地址(71.XX.YY.ZZ)和1024端口。我以为会给发件人IP(无论是192.xyz和45000端口。)。
如何从 A-->B 连接和交换消息?(我希望我可以从初始消息中获取客户端端口的 IP 并回复并建立双向通信。)断开连接在哪里?-----我正在使用Qt工具包
//SERVER CODE EXCERPT
udpSocket = new QUdpSocket();
int retbind=udpSocket->bind(QHostAddress::Any,40000);
//SERVER reads message from Client (code for checking pending datagrams not shown)
udpSocket->readDatagram(datagram.data(), datagram.size(),&senderIp, &senderPort);
谢谢,