- import java.io.*;
- import java.net.*;
- import java.util.*;
- public class VerySimpleChatServer {
- /**
- * @param args
- */
- ArrayList clientOutputstreams;
- public class ClientHandler implements Runnable{
- BufferedReader reader;
- Socket sock;
- public ClientHandler(Socket clientSocket){
- try{
- sock = clientSocket;
- InputStreamReader isReader = new InputStreamReader(sock.getInputStream());
- reader = new BufferedReader(isReader);
- }catch(Exception ex)
- {
- ex.printStackTrace();
- }
- }
- public void run() {
- // TODO Auto-generated method stub
- String message;
- try{
- while((message = reader.readLine()) != null){
- System.out.println(message);
- tellEveryone(message);
- }
- }catch(Exception ex){ex.printStackTrace();}
- }
- }
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- new VerySimpleChatServer().go();
- }
- public void go()
- {
- clientOutputstreams = new ArrayList();
- try{
- ServerSocket serverSock = new ServerSocket(5000);
- while(true){
- Socket clientSocket = serverSock.accept();
- PrintWriter writer = new PrintWriter(clientSocket.getOutputStream());
- clientOutputstreams.add(writer);
- Thread t = new Thread(new ClientHandler(clientSocket));
- t.start();
- System.out.println("got a connection");
- }
- }catch(Exception ex){
- ex.printStackTrace();
- }
- }
- public void tellEveryone(String message){
- Iterator it = clientOutputstreams.iterator();
- while(it.hasNext()){
- try{
- PrintWriter writer = (PrintWriter)it.next();
- writer.println(message);
- writer.flush();
- }catch(Exception ex){
- ex.printStackTrace();
- }
- }
- }
- }