一个简单问题:
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class TankServer { private static final int TCP_PORT=5566;

public static void main(String args[]){
try {
ServerSocket ss= new ServerSocket(TCP_PORT);
while(true){
Socket s=ss.accept();
}
System.out.println("已连接!!");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
这里的System.out.println("已连接!!"); 报错但不知道为啥报错  
请各位指教一下  谢谢!

解决方案 »

  1.   

    用完了要关掉啊.
    s.close();
      

  2.   


    import java.io.IOException; 
    import java.net.ServerSocket; 
    import java.net.Socket; 
    public class TankServer { private static final int TCP_PORT=5566; public static void main(String args[]){ 
    try { 
    ServerSocket ss= new ServerSocket(TCP_PORT); 
    while(true){ 
    Socket s=ss.accept(); 
    }
    //System.out.println("已连接!"); 
    } catch (IOException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
    }
    System.out.println("已连接!");  

    }
      

  3.   

    且不说别的,现在的问题出在永远也走不到System.out.println("已连接!!"); 这一步。
    这里while(true){ 跳出的条件只有一个,抛异常。但是抛了异常之后就直接跳到} catch (IOException e) {了。
    你可以把true替换成一个变量,初始值true,Socket s=ss.accept(); 下边把变量设置为false。
      

  4.   

    while(true){ 
    Socket s=ss.accept(); 

    这句是死循环,有异常发生才会跳出,但是直接跳到catch里
    所以执行不了
      

  5.   

    他说的出错并不是运行出错,是编译时提示
    System.out.println("已连接!!"); 为不可到达的语句,所以他认为是这句出错了。
      

  6.   

    while(true){ 
    Socket s=ss.accept(); 

    陷入死循环
    无法到达System.out.println("已连接!");这步。
      

  7.   

    如果你要看是否接收到tcp连接把输出语句放在accept()后面呗~
      

  8.   

    #83try和catch中间能写代码吗?没见过这种写法