Socket s = new Socket(...);
s.setSoTimeout(30);
另30ms太短了吧

解决方案 »

  1.   

    setSoTimeout()方法设定之后,如果有某个通信操作的等待时间超出指定值(比如读取操作),就会抛出InterruptedIOException异常,你可以捕获这个异常进行处理。一般都是这样:
    try
    {
    socket_client =new Socket(IP,端口)); 
    socket_client.setSoTimeout(20000);      
    in_client=new BufferedReader(new InputStreamReader(socket_client.getInputStream()));
    out_client=new PrintWriter(socket_client.getOutputStream());
    ... ...
    s_line=in_client.readLine(); //这个地方就可能抛出InterruptedIOException}
    catch(InterruptedIOException ex_timeout)
    {
    //对超时情况的处理
    //... ...
    }