import java.io.*; import java.net.*; import java.util.*; public class Jututuba{ public static void main(String argumendid[]) throws IOException{ ServerSocket ss=new ServerSocket(3001); List kasutajad=Collections.synchronizedList(new LinkedList()); while(true){ Socket sc=ss.accept(); new Kasutaja(sc, kasutajad); } } } class Kasutaja extends Thread{ List kd; Socket sc; PrintWriter valja; BufferedReader sisse; String kasutajanimi; public Kasutaja(Socket uus_sc, List kasutajad){ kd=kasutajad; sc=uus_sc; start(); } public void run(){ try{ sisse=new BufferedReader( new InputStreamReader(sc.getInputStream()) ); valja=new PrintWriter(sc.getOutputStream(), true); valja.println("Palun kasutajanimi:"); kasutajanimi=sisse.readLine(); synchronized(kd){ kd.add(this); } boolean veel=true; while(veel){ String rida=sisse.readLine(); System.out.println(rida); if(rida.startsWith(".ots")){veel=false;} synchronized(kd){ Iterator it= kd.iterator(); while(it.hasNext()){ Kasutaja k=it.next(); k.valja.println(kasutajanimi+": "+rida); } } } sc.close(); } catch(Exception e){ System.out.println("Probleem: "+e); } kd.remove(sc); } }