如题部分代码如下socket = new Socket();
SocketAddress endpoint = new InetSocketAddress("32.12.21.97", 1609); 
socket.connect(endpoint, 10000);
当IP不存在时,在设置的10秒超时事件过后会正常捕捉异常当IP真实存在,而端口不通时,会很快捕捉到异常
请问为何设置的超时时间没用?
谢谢补充:是建立连接的超时,不是接受数据的超时

解决方案 »

  1.   

    连接时判断IP是否存在通常超时时间是比较长的,而确定IP真实存在以后,判断端口是否可用的超时时间很短。
      

  2.   

    其实我觉得这个你设置这个超时,在ip错误的情况下能够相应。。是因为。你发出的数据包之后等待对方的相应如果10秒都没有相应。。那么就会停止。。所以我想他只针对的是ip。。而端口是错就是错对就是对。。不存在等待相应。。 = = 。这只是我想的。。没有考证。
      

  3.   


    Socket通讯当然是应该针对端口的,没有端口,又怎能建立Socket呢?
    所以说建立Socket超时也应该是针对端口才对吧,可是无效
      

  4.   

    我想只要是做过Socket的,都会明白Socket连接是针对端口的
    如果仅仅是IP存在JAVA Socket就能建立连接了吗?
    请问是建立和哪个端口的连接呢?
    就像要入住一个酒店,只告诉你是哪个酒店,而房间没告诉你一样。我感觉Java里面应该有针对端口的连接超时吧,请高手指教!