日期:2014-05-16  浏览次数:20873 次

Socket网络高手请进,关于socket通讯.
就是在connect()对方的时候,以前的程序在对方没有开机时返回的错误信息是:"Network is unreachable",打印一下connect()耗费时间是0s(大约估计一下,方法是在connect()前后去两个time(),然后做差).
现在将程序修改了一下,在对方没有开机的时候返回的错误信息是"No route to host",打印一下connect()耗时是3s(打印方法同上).
程序修改是对于网络部分有一些稍微修改:以前对方是固定Port的,现在的程序对方的Port不固定,但是通讯双方有固定算法能得到相同的Port
有没有精通网络的高手给解释一下为什么会出现这个问题?这两个错误是导致connect()耗时不一样的原因么?

------解决方案--------------------
应该是你所说的port算法问题, 因为connect的时候要挨个试吧?
------解决方案--------------------
这个跟程序没啥关系。connect失败的返回时间由网络系统决定,这又取决与
当时的实际网络状况。
------解决方案--------------------
同意dai_weitao。

------解决方案--------------------
:"Network is unreachable", "No route to host",
应该不是由楼上各位所说的原因造成的,我觉得有其它的原因....
时间的确是取决于当时的网络状况...
------解决方案--------------------
同意rocenarius的看法,网络状况问题