Server.java
public class Server { public static ArrayList <Socket> socketList = new ArrayList<Socket>(); public static void main(String[] args) { ServerSocket server = null; try { server = new ServerSocket(11111); } catch (IOException e) { e.printStackTrace(); } while(true) { Socket socket = null; try { socket = server.accept(); } catch (IOException e) { e.printStackTrace(); } socketList.add(socket); try { new Thread(new ServerThread(socket)).start(); } catch (IOException e) { e.printStackTrace(); } } } }ServerThread.java
public class ServerThread implements Runnable { Socket s = null; BufferedReader br = null; public ServerThread(Socket s) throws IOException { this.s = s; br = new BufferedReader(new InputStreamReader(s.getInputStream())); } @Override public void run() { String content = null; try { while((content = br.readLine())!=null) { for(Socket s:Server.socketList) { PrintStream ps = new PrintStream(s.getOutputStream()); ps.println(content); } } } catch (IOException e) { Server.socketList.remove(s); } } }Client.java
public class Client { public static void main(String[] args) throws UnknownHostException, IOException { Socket client = new Socket("127.0.0.1",11111); PrintStream ps = new PrintStream(client.getOutputStream()); new Thread(new ClientThread(client)).start(); String line = null; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); while((line = br.readLine())!=null) { ps.println(line); } } }ClientThread.java