最近一直在做P2P软件.可是外网与内网通信一直困扰着我.
请高手指点一下.
具体情况:
软件采用C/S结构.
服务器有公网IP
客户端可以在公网或者内网.
遇到的问题就是当客户端在内网.无法收到服务端发来的数据.
请各位高手指点一下.最好有源码
请高手指点一下.
具体情况:
软件采用C/S结构.
服务器有公网IP
客户端可以在公网或者内网.
遇到的问题就是当客户端在内网.无法收到服务端发来的数据.
请各位高手指点一下.最好有源码
MSN:[email protected]
好了,情况说明,解决方法也简单.从MSDN得知,UDP通信时,Winsock的RemoteHost与RemotePort属性是可以随便更改的.也知道了RemoteHostIP就是跟你通信的机器的IP,也知道RemotePort就是跟你通信的机器的端口.只要内网机器向外网机器发送UDP数据时,外网机器在DataArrival事件发生时,调用GetData取得数据后,就可以通过RemoteHostIP与RemotePort,知道对方的IP和端口了,这时再把自己的RemotePort与RemoteHost属性改为相应的端口与IP就可以返回信息给内网机器了!