前提:
我用socket分别与局域网内所有PC建立连接(局域网内有一台PC已经运行了服务器端)。问题产生于客户端:
1。如果我直接指定那台服务器的 主机的inetAddress 和 端口 的话,即时延迟设置为50ms也可以正常连接。
socket s = new socket();
s.connect( inetAddress , 20000 , 50);
s.close();2。但,如果我用循环不停的执行上面的代码(主机inetAddress变成2-254)的话,延迟设置到1秒才可以确保正常连接。否则均抛出time out错误。纠结了好久好久,不得其解啊,恳请高手点拨一二!!

解决方案 »

  1.   

    正确步骤应该是:客户端向局域网广播一个寻找服务器的 UDP 请求,服务器收到请求后主动连接客户端。
      

  2.   

    s.connect( inetAddress , 20000 , 50); 
    你的这个inetAddress 应该是局域网内的所有ip地址都尝试一遍
      

  3.   

    谢谢2l,3l的朋友。
    能否把我那个socket方法不成功的理由告诉我呢?我好奇的是,为什么连接一个服务器端的时候就可以,而批量连接的时候就超时呢?★到底是在什么地方浪费了时间导致了超时呢?★