//Andrus Epkin, Tarvo Tromp, Marge Nurme, Mait Kelindeman. 11.12.2000. //JUTUTOA SERVER VERSIOON 1.0 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); Vector uhendused=new Vector(); //Ühenduste vektor Vector nimed=new Vector(); //Nimede vektor Vector read=new Vector(10); //Read vektor while(true){ Socket sc=ss.accept(); new jututoaloim(sc, uhendused, nimed, read); } } } class jututoaloim extends Thread{ Vector v; Socket sc; Vector nimed; Vector read; public jututoaloim(Socket uus_sc, Vector uus_v, Vector uus_n, Vector uus_r){ v=uus_v; nimed=uus_n; read=uus_r; sc=uus_sc; start(); } public void run(){ int rep=0; try{ BufferedReader sisse=new BufferedReader( new InputStreamReader(sc.getInputStream()) ); PrintWriter valja=new PrintWriter(sc.getOutputStream(), true); //true, et saadaks otse välja. Mitte ei bufferdaks. String rida=null; boolean leidub=false; do{ rida=sisse.readLine(); leidub=false; System.out.println("nimed: "+nimed); leidub=nimed.contains(rida); if(leidub)valja.println("Selline nimi on olemas!"); else valja.println("Teretulemast Tamm'e jutukasse!"); rep++; } while(leidub); if(!leidub){ nimed.add(rida); String nimi=new String (rida); v.add(sc); boolean veel=true; while(veel){ rida=sisse.readLine(); System.out.println(rida); read.add(rida); if (read.size()>10){ read.remove(0);} if(rida.startsWith(".ots"))veel=false; //Kui rida algab ".ots"-ga, siis veel pannakse vääraks ning kliendile enam serveri poolt ei saadeta midagi. if(rida.startsWith(".w"))saadaNimed(new PrintWriter(sc.getOutputStream(), true)); if(rida.startsWith(".rev"))saadaRead(new PrintWriter(sc.getOutputStream(), true)); //Saadetakse alamprogrammi, mis väljastab viimased 10 rida. for(int i=0; i40){valja.println("Liiga pikk, ei läbusta :#");} } } }