今天一个问题困扰了一整天,
现象:
在局域网下UDP收发数据都很正常,但是到了公网下,服务端可以收到数据,但是发送数据出现问题,
通过返回发送的字节数目是正常的,WSAGetLastError()返回的也是正确。
但是当通过Wirshark抓包时,无法抓到Server端发出去的数据包。
解决办法:确保数据是原路返回
1. 当Server端收到一个UDP数据包之后,Server端应该记录下对方地址 Addr1(使用的是Socket1)
2. 不可以用其他Socket向这个Addr1 发送UDP 数据,必须使用Socket1.用其他Socket往这个地址发,是发送不过去的