问题描述:
    偶现在实现一个SCKET通信CLIENT端,用线程实现的,要求设置一定的超时时间,如果时间超时,那么就不再等待服务器端传输的数据,直接结束SOCKET。
    不知道怎么实现?请各位大虾指点一二!
    不胜感激!!

解决方案 »

  1.   

    setSoTimeout
    public void setSoTimeout(int timeout)
                      throws SocketException启用/禁用带有指定超时值的 SO_TIMEOUT,以毫秒为单位。将此选项设为非零的超时值时,在与此 Socket 关联的 InputStream 上调用 read() 将只阻塞此时间长度。如果超过超时值,将引发 java.net.SocketTimeoutException,虽然 Socket 仍旧有效。选项必须在进入阻塞操作前被启用才能生效。超时值必须是 > 0 的数。超时值为 0 被解释为无穷大超时值。 超时后你在捕捉异常时就可以直接结束SOCKET。
      

  2.   

    setSoTimeout 就这个哇 上面的朋友说了额
      

  3.   

    那write()的超时呢,我记得直接用delphi 调用win32的API  可以设置的 但是java 貌似只能够设置读取数据 超时的时间!
      

  4.   

    瞎鸡巴   扯淡   人家问的是socket的连接超时    不是等待  读取数据时的超时