package vork; import java.io.*; import java.util.*; import java.net.*; class Kasutaja extends Thread{ List kd; Socket sc; PrintWriter valja; BufferedReader sisse; String knimi="nimetu"; 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:"); knimi=sisse.readLine(); synchronized(kd){ kd.add(this); } boolean veel=true; while(veel){ try{ veel=false; String rida=sisse.readLine(); veel=true; 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(knimi+": "+rida); } } } catch(Exception ex){ System.out.println("Kirjutusprobleem: "+ex); ex.printStackTrace(); } } sc.close(); } catch(Exception e){ System.out.println("Probleem: "+e); } synchronized(kd){ kd.remove(sc); } } }