import java.io.*; import java.net.*; public class randoms { static final int rport = 1917; public static void main(String[] args) { try { ServerSocket listener; System.out.println("\nRandom number server started on port "+ rport); while (true) { Socket mysocket; listener = new ServerSocket(rport); mysocket = listener.accept(); // passive open; // System.out.println("randoms: client socket connected"); randomthread rt = new randomthread(mysocket); rt.start(); // starts thread listener.close(); } // end infinite while } catch (Exception E) { System.out.println(E); } } // end main } // end class randoms class randomthread extends Thread { Socket mysocket; public randomthread(Socket s) { super(); mysocket = s; } public void run() { int range; int r; String instring = "dd"; try { OutputStreamWriter osw = new OutputStreamWriter(mysocket.getOutputStream()); PrintWriter sender = new PrintWriter(osw,true); BufferedReader receiver = new BufferedReader(new InputStreamReader(mysocket.getInputStream())); do { instring = receiver.readLine(); if (instring.equals("bye")) break; range = Integer.parseInt(instring); r = (int) (Math.random() * range); sender.println("" + r + "."); // sender.print("" + r + "." + ((char) 0)); } while (!(instring.equals("bye"))); mysocket.close(); } catch (Exception E) { System.out.println(E); } } // end run } // end class randomthread