首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

不同内网间的UDP通讯?解决思路

2012-04-28 
不同内网间的UDP通讯?客户端C的内网IP及通讯端口为192.168.1.5:7000,对应的经路由NAT后变为220.120.123.42

不同内网间的UDP通讯?
客户端C的内网IP及通讯端口为192.168.1.5:7000,对应的经路由NAT后变为220.120.123.42:15000;

服务器S的内网IP及通讯端口为192.168.1.150:9119,对应的路由公网IP为113.93.159.242,已经在路由上做了端口映射。


现在C知道S的公网IP及端口113.93.159.242:9119后,向其发送数据,S能收到C的数据,通过函数function TCustomWSocket.ReceiveFrom(
  Buffer : Pointer;
  BufferSize : Integer;
  var From : TSockAddr;
  var FromLen : Integer) : integer;知道了C的IP和端口为220.120.123.42:15000;然后向C发送确认数据包,但C却收不到任何数据。


此程序我在同一内网中测试时完全正常的。请教大虾们该如何解决呢?

[解决办法]
ProcessDeviceUDPData(PeerIP,PeerPort,@Buffer,Len)
改为 ProcessDeviceUDPData(DeviceUDPServer,PeerIP,PeerPort,@Buffer,Len)
发送信息回客户端 用DeviceUDPServer 不用另外创建新的 
DeviceUDPServer.Send(PeerIP,PeerPort,Dest,DestLen);//因该有类似的发送函数吧?

热点排行