public Server(){
        try{
            while (true){
                socket = ss.accept();
                in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                out = new PrintWriter(socket.getOutputStream(),true);                String line = in.readLine();
                out.println("you input is :" + line);
                out.close();
                in.close();
                socket.close();
            }
        }
        catch (IOException e){}
        finally{
         try {
ss.close();
} catch (IOException e) {}
        }
    }

解决方案 »

  1.   

    问题解决了,我还是不知道为什么 呵呵。楼上能不能解释一下?
    还有ss.close();什么时候会执行呢?(这个程序只能Ctrl+C退出)
      

  2.   

    其实这是java编译器的1个缺陷java编译器把unreachable statement标记为运行时错误,一个unreachable statement就是编译器决定永远不会执行它。下面的几种情况会出现 unreachable statement:(1)在reutrn语句后写语句。(2)在throw语句后写语句。(3)break、continue语句之后定义语句。(4)“\u10100”//合法,相当于‘\u1010’和字符串“0”。(5)移位运算符可以用于long int char short byte。(6)类的访问控制符可以是public或什么都不加。(7)goto是保留字但不是关键字。then什么都不是。(8)把超类的类型强制转换后赋给子类的对象时,编译无异常,但运行时会出现异常。例如:
            一个方法,在它的中间出现了一个无条件返回语句,将会引起一个便宜错误:
    if (1 < 2)
    return;
    // unreachable statements
    本文出自 51CTO.COM技术博客