过nat内网通信问题
我在一个公网的电脑上,放一个SERVER,接收来自内网的IP和端口
server,数据如下:
114.97.193.93:26494 (第一台)
114.97.193.93:26976(第二台)
我现在在Client(1),和client(2)上,也放置了一个UDPSERVER,控件,和UDPCLIENT控件
我在Client(1)上,向内网的另一个Client(2),用上面服务器接收到的外网端口发送数据,为什么收不到?
Client(1)向:114.97.193.93:26976 (Clinet2收不到)
Client(2)向:114.97.193.93:26494 (Clinet1收不到)
[解决办法]
A和B在同一子网内,不需要通过服务器中转吧,一个客户端向另一客户端发消息时先判断一下是否与自己在同一网段,如果不在,则通过服务器打洞,相关资料网上很多
[解决办法]
Client(1)向:114.97.193.93:26976 (Clinet2收不到)
Client(2)向:114.97.193.93:26494 (Clinet1收不到)
你这种发送肯定是要通过服务端转送的。
因为26976,26494不是对方UDPSERVER开启的端口,而是UDPClient连接服务端的端口。
假设你的26976,26494是你的客户机所开启的UDPSERVER的端口,你的服务器要做端口映射才可以接收。
[解决办法]
网上看看P2P 就是打洞技术! 呵呵
[解决办法]
跟踪测试一下,再用
Showmessage();
看看每一步参数对不对