import java.io.*; import java.net.*; import java.util.*; public class NrServer { public static void main(String[] args) throws IOException { ServerSocket serversokk = new ServerSocket(6000); while(1==1){ Socket tavasokk = serversokk.accept(); Jahuja jahu = new Jahuja(tavasokk); } } } // serverijooksutaja lõim class Jahuja extends Thread{ // tehakse pistik Jahuja sisse. private Socket _sokk; public Jahuja(Socket sokk) { // pannakse jahuja nii käima, et socket sokk antakse ette. _sokk = sokk; // pannakse lõim käima start(); } // meetod, mis tegeleb kasutajaga private String tsikkel(BufferedReader inpu, PrintWriter outpu) throws IOException{ String buf = null; // puhver, kuhu loetakse pistikust. int nr, nrc; // numbritetöötluseks. outpu.println ("Sisesta mingi number 1-10"); buf = inpu.readLine(); // kysitakse readerist, mida kasutaja kirjutas try { nr = Integer.parseInt(buf); } catch (NumberFormatException nfe) { outpu.println ("Paha laps, miks sa numbrit ei sisestanud?"); return (buf); } if ((nr < 1) || (nr > 10)) { outpu.println ("Paha laps, miks sa mulle vale numbri andsid?"); return (buf); } // genereeritakse juhuslik number Random rand = new Random(); nrc = Math.abs(rand.nextInt() % 10 + 1); if (nrc == nr) { outpu.println ("Mina mõtlesin ka seda numbrit!"); } else { outpu.println ("Mina mõtlesin hoopis numbrit " + nrc); } return (buf); } // lõime jooksev osa: public void run() { // defineeritakse puhvrid, mis loevad-kirjutavad läbi socketi BufferedReader inpu; PrintWriter outpu; // siia loetakse, mida annab tagasi tsikkel-meetod. kui tsikkel meetod lõpteb annab nulli. String buf; // proovime luua puhvrid socketi ymber kirjutamiseks ja lugemiseks- try { inpu = new BufferedReader(new InputStreamReader(_sokk.getInputStream())); outpu = new PrintWriter(_sokk.getOutputStream(), true); } catch (IOException e) { return; } // paneme buf-ile mingi väärtuse, mis pole null. buf = "abc"; while (buf != null) { try { // proovime tsikkel-t jooksutada buf = tsikkel (inpu, outpu); } catch (IOException e) { } } try { // kui kasutaja kadunud on, siis socket kinni. _sokk.close(); } catch (IOException e) { } } }