我是放在一个线程里做的,只要soket连接没有断开就会一直从连接的流中读取数据

解决方案 »

  1.   

    给你写个代码:
    服务器端:
    import java.io.*;import java.net.*;public class MyServer {public static void main(String[] args) throws IOException{  ServerSocket server=new ServerSocket(8888);  Socket client=server.accept();BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));PrintWriter out=new PrintWriter(client.getOutputStream());while(true){String str=in.readLine();System.out.println(str);out.println("has receive....");out.flush();if(str.equals("end"))break;}client.close();} }客户端:
    import java.net.*;import java.io.*;public class MyClient{static Socket server;public static void main(String[] args)throws Exception{  server=new Socket(InetAddress.getLocalHost(),8888);  BufferedReader in=new BufferedReader(new InputStreamReader(server.getInputStream()));  PrintWriter out=new PrintWriter(server.getOutputStream());  BufferedReader wt=new BufferedReader(new InputStreamReader(System.in));    while(true)  {   String str=wt.readLine();   out.println(str);   out.flush();   if(str.equals("end")){    break;   }   System.out.println(in.readLine());  }  server.close();}}可以在接收数据的时候自行判断,也可以把接收数据的工作放在线程中。