日期:2014-05-18  浏览次数:20882 次

打洞失败
ca和cb如果都是拨号上网的,都可以与server联系,也都可以互相发信息,可是一旦处在内网之中,或在virtural box中(用网桥),就出现如下问题:
服务器能收到信息,可是回复的信息,客户端却收不到,就是说丢失了,应该是被主动丢弃了。。。。。。。。。

服务端一个udp接,一个udp发,都是线程处理,客户端一个udp接和发,但是数据量不大,很小

各位帮忙想想,问题出在哪里???



------解决方案--------------------
udp是广播包吗?被路由器拒了.
------解决方案--------------------
按说内网客户端向公网服务器发过包以后 就已经打洞成功了 你向相同的端口回复的话应该能收到吧 你的服务器是在公网么?
------解决方案--------------------
不是很懂,学习一下
------解决方案--------------------
探讨
不是很懂,学习一下

------解决方案--------------------
mark
------解决方案--------------------
引用:
不是很懂,学习一下
------解决方案--------------------
没搞过!!!
帮你顶!!!
------解决方案--------------------
楼主还没明白P2P的过程。如果对方也在某一局域网内,是要先打“洞”的(就是让机器和路由器建立连接),而且这个“洞”是有方向的,如你要发信息给对方,必须先由对方向你的IP和端口方向打“洞”,然后你才能将信息发送给对方,否则你发送的信息将会被对方的路由设备丢弃。反过来,如果对方需要发送信息给你,同样需要你先向对方的IP和端口方向打“洞”。
你的情况是,两个客户端只和server打通了,而两个客户端之间的"洞"还没有打通. 这样的话,当客户端一方的路由设备收到另一客户端的信息时,被主动丢弃。
------解决方案--------------------
探讨
没搞过!!!
帮你顶!!!

------解决方案--------------------
探讨
楼主还没明白P2P的过程。如果对方也在某一局域网内,是要先打“洞”的(就是让机器和路由器建立连接),而且这个“洞”是有方向的,如你要发信息给对方,必须先由对方向你的IP和端口方向打“洞”,然后你才能将信息发送给对方,否则你发送的信息将会被对方的路由设备丢弃。反过来,如果对方需要发送信息给你,同样需要你先向对方的IP和端口方向打“洞”。
你的情况是,两个客户端只和server打通了,而两个客户端之间的"洞"还没…

------解决方案--------------------
探讨
引用:
没搞过!!!
帮你顶!!!

------解决方案--------------------
探讨
UdpClient UFcC = new UdpClient(0);
ufcc.send 方法发送数据,服务端能收到数据,并取得ip,port,然后立即向这个ip,port回发数据
ufcc。recieve则收不到数据

------解决方案--------------------
学习啦。。。
------解决方案--------------------
不懂···
帮顶···
------解决方案--------------------
没有做过,帮你顶
------解决方案--------------------
学习一下,,,,,,,,
------解决方案--------------------
可能是单个UDP数据包的大小超过MTU了

服务器是什么系统(补丁)?

------解决方案--------------------
换个网络环境试试?难道路由器的问题?
------解决方案--------------------
kankan...........