我在线程中连网
 public   void  run() {      try  {    
         while  ( true ) {   
               if(b){
                    try  {    
                        socket =  new  Socket(HOST, PORT);    
                        in =  new  BufferedReader( new  InputStreamReader(socket    
                             .getInputStream()));    
                        out =  new  PrintWriter( new  BufferedWriter(    
                             new  OutputStreamWriter(socket.getOutputStream())),    
                             true );  
                     }
                  catch  (Exception ex) {    
                       ex.printStackTrace();    
                       ShowDialog( "登陆异常:"  + ex.getMessage()); 
                       b = false;
                  }    
              
         }
     }
}
为什么第一次登陆了一次,第二次打开程序后是登陆了两次,第三次打开程序是登陆了三次,这是为什么呢。

解决方案 »

  1.   

    我已经在下面做了判断了,如何登陆成功就将b设为false;可是单步是发现第二次登陆时他会先执行两遍
     socket = new Socket(HOST, PORT);   
      in = new BufferedReader( new InputStreamReader(socket   
      .getInputStream()));   
      out = new PrintWriter( new BufferedWriter(   
      new OutputStreamWriter(socket.getOutputStream())),   
      true );   
    这是为什么呢
      

  2.   

    我已经在下面做了判断了,如何登陆成功就将b设为false你在哪里修改b的值的呀?代码里面没有  catch (Exception ex) {   
      ex.printStackTrace();   
      ShowDialog( "登陆异常:" + ex.getMessage());  
      b = false;
      }   
    catch中的只有出现异常才回执行,你连接网络又不会出现异常