楼主,其实你考虑的问题Socket本省已经实现了:Socket.setSoTimeout(int timeout):设置Socket的连接的超时值,指定的以毫秒为单位的超时值。 希望楼主多看API,会有意想不到的惊喜哦!

解决方案 »

  1.   

    代码:        Socket socket = null;
            try
            {
                socket = new Socket(InetAddress.getLocalHost(), 8888);
                // 超时时间为2分钟
                socket.setSoTimeout(1000 * 60 * 2);            // .....业务逻辑        }
            catch (SocketTimeoutException e)
            {
                socket.close();
            }
      

  2.   

    除了1L说的,再补充一个方法:connect(SocketAddress endpoint, int timeout) 
      

  3.   

            Socket socket = null;
            try
            {
                socket = new Socket(InetAddress.getLocalHost(), 8888);
                // 超时时间为2分钟
                socket.setSoTimeout(1000 * 60 * 2);
     
                // .....业务逻辑
     
            }
            catch (SocketTimeoutException e)
            {
                socket.close();
            }
    我不太理解,这个不是设置的连接超时吗?我想要的是客户端接收服务器信息在规定的时间内没有接收到服务器的信息则客户端关闭