soclet.setSoTimeout(10000)
我现在对这个超时有的模糊,大家帮我解开下,看下面代码:soclet.setSoTimeout(10000);while(1)
{}
..........我想利用这个超时结束while循环,行吗?好象不行,哪个这个超时是怎么吵的

解决方案 »

  1.   

    用Socket.setSotimeout(int   i);   
      注意捕获InterruptedException   异常。
    如果捕捉到InterruptedException   这样你就可以进行处理了 break   
      while(1){
     try{   
      socket1.setSotimeout(20000);//20seconds   
      }   
      catch(InterruptedException   ie)   
      {   
      break;    
      }   
    }     
      

  2.   

    没有把,到时间后,我程序还是在while里面执行呢
      

  3.   

    写个时间的标志量,运行的时间如果是20秒了,就跳出while
      

  4.   


    答:当然可以啦.
    setSoTimeout(10000)的含义是:当进行read()读数据操作时,最多阻塞10秒钟.时间一到(不再等待读下去了),抛出SocketTimeoutException异常.因此:你只要抓住该异常并break,就可以跳出while(1)循环了.
      

  5.   

    具体用法:
    soclet.setSoTimeout(10000); //读数据操作时,最多阻塞10秒钟while(1) 

      ...
       try{
          int v=s.read();//读数据操作时,最多阻塞10秒钟
        }catch(java.net.SocketTimeoutException e){
         break;
       }

      

  6.   

    soclet.setSoTimeout(10000); //读数据操作时,最多阻塞10000毫秒
      

  7.   

    哈哈,我的while不是对socket操作,我现在有点点明白了