/* * * jutuka server Grupp: märt, martin, kaido, pjotr * Aeg: 21. okt 2003 * */ import java.awt.*; import java.io.*; import java.net.*; import java.util.*; public class Jutukas { public static Vector rahvas=new Vector(); public static void main(String Args[]) throws IOException { ServerSocket server=new ServerSocket(2003); System.out.println("Server on püsti!"); System.out.println("Ootan ohvreid ..."); int id=0; while(true) { rahvas.add(new kasutaja(server.accept(), id++)); } } static class kasutaja extends Thread { PrintWriter valja; Socket pistik; String kasutajanimi="tundamtu"; int id; // kui kasutaja muudab oma nime, siis id jääb ikka samaks! public kasutaja(Socket pesa, int _id) { id=_id; pistik=pesa; try{ valja=new PrintWriter(pesa.getOutputStream(), true); }catch(Exception e){ System.out.println("Viga! Vaata serveriLog.txt"); } start(); } public void run() { try { boolean systeem=false; // Süsteemsete teadete edastamiseks TRUE, vestlusel FALSE! String rida; BufferedReader sisse=new BufferedReader(new InputStreamReader(pistik.getInputStream())); // Tervitus + kasutajanime pärimine valja.println("Olete sisenenud jutukasse!"); valja.println("Hetkel on kohal "+rahvas.size()+" külastajat."); valja.println(" "); valja.println("Sisestage oma kasutajanimi: "); valja.flush(); kasutajanimi=sisse.readLine(); System.out.println("+ "+kasutajanimi); valja.println("Tere, "+kasutajanimi+"!"); valja.println("Olete lisatud jutuka rahvamassi, võite alustada aktiivset suhtlemist."); valja.println("----------------------------"); valja.println(); while(true) { rida=sisse.readLine(); if (rida.startsWith(".quit")) { valja.println(".quit"); // Lõpetamise signaal saadetakse tagasi! break; } if (rida.startsWith(".count")) { rida="Jutukas on kokku: "+rahvas.size()+" kasutajat!"; systeem=true; } if (rida.startsWith(".username")) { String uus; valja.println("Sisestage uus kasutajanimi: "); uus=sisse.readLine(); rida=kasutajanimi+" on nüüd hoopis "+uus; systeem=true; kasutajanimi=uus; } if (rida.startsWith(".menu")) { valja.println(" "); valja.println("Menüü: "); valja.println(" "); valja.println(".username \t- kasutajanime muutmine"); valja.println(".count \t- jutukas olevate kasutajate arv"); valja.println(".menu \t- süsteemikäskude loetelu"); valja.println(".users \t- hetkel sees olevad kasutajad"); valja.println(".about \t- millega on tegemist"); valja.println(".quit \t- ühenduse lõpetamine"); valja.println(" "); rida=kasutajanimi+" vaatab menüüd!"; systeem=true; } if (rida.startsWith(".users")) { valja.println(" "); valja.println("Hetkel on traadil järgmised inimesed: "); valja.println("--------------------------"); for(int i=0; i"); else k.valja.println(kasutajanimi+" ütles: "+rida); } systeem=false; } pistik.close(); } catch(Exception e){} System.out.println("- "+kasutajanimi); rahvas.remove(this); } } }