import java.io.*; 
import java.net.*; 
import java.util.*; public class ProxyServer1{ 
public static void main(String[] args) 
  {try{ 
   
    ServerSocket s=new ServerSocket(25); 
    while(true) 
   { 
    Socket wait_s=s.accept();//建立一个等待socket; 
    Proxy1 t=new Proxy1(wait_s);//建立一个新线程 
    t.start(); 
  }} 
  catch(Exception ex){} 

} class Proxy1 extends Thread{ public Socket client_s; 
   
public Proxy1(Socket wait_s) 

client_s = wait_s; 
}   
   
public void run() 

  try 

  BufferedReader from_c=new BufferedReader(new InputStreamReader(client_s.getInputStream()));   
String line; 
while((line=from_c.readLine())!=null)//这个循环为什么腿不出来?????? 
{ // 
System.out.println(line); // 
} // 
        System.out.println("over"); //运行不到这一行("over"打印不出来) 

  catch(IOException e){} 

}

解决方案 »

  1.   

    line=from_c.readLine())!= null这个会 阻塞线程的,while(true)
    {
       if((line= fromc.readLine()).equals("exit"))
         break;
     
    System.out.println(line); // 
    }
    这样试试
      

  2.   

    如果有数据那么line就不会是null所以继续循环。
    如果没数据那么程序就会等待直到有数据也不出循环。
    试着控制下每次读取的长度吧。