引用:hahacheng 发表于 2016-04-26 11:40 刚我也试了用手机去ping你那个demo服务器地址也出现和这个图一样的结果,但是都能发送和接收信息 |
引用:hahacheng 发表于 2016-04-26 11:40 图上面的感叹号就表示没有ping通。你这手机跟服务器网络根本就不通。 这种基本的手机和服务器网络问题你只能自已去解决了,要么是手机压根就上不了网,要么是服务器有防火墙没开发端口等等原因。程序员对这些基本的问题还是应具备解决能力的,这种问题只能靠你自已了 |
引用:hahacheng 发表于 2016-04-18 15:42 你有勇气把完整的ping信息发出来吗? 1)A到server的ping信息; 2)server到A的ping信息; 3)B到server的ping信息; 4)server到B的ping信息。 同时把A、Sever、B的IP地址也帖出来。我几乎可以肯定的是A端和服务端是没有问题的,问题就在B端哦! |
引用:hahacheng 发表于 2016-04-18 15:51 你这个根本不是丢,就是网络没通。 UDP协议本身丢包并没有想象的那么大。在你TCP正常表现的情况下,UDP的丢包几率你可以认为是百分之一。 举个例子: 1次发送加上3次重传都没成功,那几乎不可能是UDP协议自身的丢包原因。 最坏的情况下,假设UDP的丢包几率10分之一,即0.1(实现上UDP天生丢包还可以加一个小数点,没那么夸张的理论丢包率),那么你的丢包几率就是0.0001了,也就是可靠性是99.99%,4个9了,这种情况下还丢包,只能说你可以去买彩票了。 而且这假设是在相当糟糕的情况下,且讨论的是移动端的UDP(PC端的UDP在WIFI或有线的情况下那就更可靠了!)。 |
引用:JackJiang 发表于 2016-04-18 10:54 我这个信息问题,有没可能是udp协议造成的!可靠性没那么强,出现数据丢失 |
引用:JackJiang 发表于 2016-04-18 10:54 我测试了啊,两端网络都是互通的哦! |
你这个Log已经很明显能说明问题了:消息没有被成功收到或者消息已收到但不能成功发出应答!这通常就是你的测试网络环境没有全向搞通的问题! 至于你发送消息时的返回值是“消息发送成功”,我给你解释一下: 因为UDP的无连接特性,这里的“消息发送成功”,意味着已将UDP数据报成功送出,但至于对方有没有收到,发送方是不能同步知道的(所以就需要应答机制了,当然基于IM的技术逻辑特殊性,TCP也同少不了应答机制)。所以,这里的“发送成功”准确地说应该叫“数据发出成功(而非接收成功)”。 总之,你的问题是你的B端无法接收数据、或者能接受数据但不能发出应答包。你需要把你的测试环境诊断一下,确保:A\B端都能正常地与服务器进行双向通信。 何为双向通信? 就是A能发服务端、服务端也能发A,对B也是一样。 1)诊断客户端到服务端网络是否正常,你可以用论坛里的工具进行测试:http://www.52im.net/thread-145-1-1.html 2)诊断服务端与到客户端网络是否正确,请在服务端端ping客户端的ip就知道了。这个帖子里的问题跟你的类似,可以完整的看看帖子回复就能知道怎么做了:http://www.52im.net/thread-211-1-1.html |