java中socket通信(一对多)

【server端】

 

import java.io.*;
import java.net.*;
public class MultiSocketServer
{
 public static void main(String str[]) throws IOException
 {
  ServerSocket server=new ServerSocket(3333);//绑定端口
  while(true)
  {
   Socket client=server.accept();//监听
   ChildTh child=new ChildTh(client);
   Thread t=new Thread(child);
   t.start();   
  }
 }
}
class ChildTh implements Runnable
{
 private Socket client;
 public ChildTh(Socket client)
 {
  this.client=client;
 }

 public void run() {
    try
  {
   BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
   PrintWriter out=new PrintWriter(client.getOutputStream());
   while(true)
   {
    String s=in.readLine();
    System.out.println(s);
    out.println("has received……");
    out.flush();
    if(s.equals("end"))
     break;
   }
   client.close();
  }
  catch(Exception e)
  {
   e.printStackTrace();
  }  
 }
}

【client端】

import java.net.*;
import java.io.*;
public class MultiSocketClient
{
 static Socket server;
 public static void main(String str[]) throws  IOException
 {
  server=new Socket("222.195.151.47",3333);  
  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 s=wt.readLine();
   out.println(s);
   out.flush();
   if(s.equals("end"))
   {
    break;
   }
   System.out.println(in.readLine());
  }
  server.close();
 }
}

你可能感兴趣的:(java,通信)