我正在做一种p2p通讯软件,用的是UDP协议。原理是这样的:A和B分别登录到服务器S,由于A和B都是处在内网中,登录服务器时,会把内网IP和端口映射成外网IP和端口。然后S再把A和B的地址和端口(经过A和B的路由器映射后的外网IP和端口)互相发给对方,然后A和B互相向对方的IP和端口发送数据,一秒钟发一次,直到收到对方的数据,就算是联系上了,就停止。可是我发现:结果是:A和B永远也收不到对方的数据,发确实是发的,一秒钟向对方发一次(对方的经过路由器映射的外网IP和端口),但是永远收不到对方的数据,互相收不到。问题出在哪儿呢?我发的数据简单,就十几个字节。而且只向对方的经过路由器映射后的外网IP和端口发送,不向它的原来的内网IP和端口发送(这样对吗?)我的两台电脑,就是通讯的双方:A和B,一个是用屋内的路由器经过宽带上网接入因特网的,一个是手机4G上网做热点,然后电脑连到这个手机热点上上网的,这时,手机就起到一个路由器的作用吧?这里面哪里出了问题?为什么收不到对方的数据?(一秒钟发一次,其实发一次后,就等于打好洞了,对方的数据就应该能接收了。可是一直收不到)。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货