import java.io.*; import java.net.*; public class randoms { static final int rport = 1909; public static void main(String[] args) { try { while (true) { Socket mysocket; ServerSocket listener; listener = new ServerSocket(rport); mysocket = listener.accept(); // passive open; randomthread rt = new randomthread(mysocket); rt.start(); // starts thread listener.close(); } // end infinite while } catch (Exception E) { System.out.println(E); } } // end main } // end randoms class randomthread extends Thread { Socket mysocket; public randomthread(Socket s) { super(); mysocket = s; } public void run() { try { // serve a random number String instring = "dd"; OutputStreamWriter osw = new OutputStreamWriter(mysocket.getOutputStream()); PrintWriter sender = new PrintWriter(osw,true); BufferedReader receiver = new BufferedReader( new InputStreamReader(mysocket.getInputStream())); sender.println("ready to transmit"); while (!(instring.equals("ready to receive"))) instring = receiver.readLine(); String outstring; outstring = "" + ( (int) (Math.random() * 100)); sender.println(outstring); // send to client mysocket.close(); } catch (Exception E) { System.out.println(E); } } // end run } // end randomthread