import java.net.*;
import java.io.*;
public class ServerThreadedRandomNumbers extends Thread {//Thread Technology!
String randomNumbers ;
InputStreamReader in = null;
BufferedReader buf = null;
PrintWriter out = null;
Socket theConnection;
int Num = 25; // Largest random number issued by server
//constructor: used to pass new connection (thread)
public ServerThreadedRandomNumbers(Socket s) {
theConnection = s;
}
public void run() { // implements the processes of the thread
try {
// the buffer used for writing/reading strings from/to the socket
out = new PrintWriter(theConnection.getOutputStream(), true);
buf = new BufferedReader(new InputStreamReader(theConnection. getInputStream()));
// Send "GO" command to the client
out.println("GO");
while (true) {
String as = buf.readLine(); // read client's requests
if (as==null) break;
// Issue random numbers to client
if (as.equals("1")){
int a=(int)(Math.random() * Num);
randomNumbers=String.valueOf(a);
randomNumbers=randomNumbers.concat(" ");
System.out.print("Pack send to client: "+theConnection.getInetAddress().toString()
+":"+theConnection.getPort() );
System.out.println("// randomNumbers issued: "+randomNumbers);
out.println(randomNumbers); // Send random number to client
}
}
System.out.println("Finished client:" + theConnection.getInetAddress().toString()+":"+theConnection.getPort());
}
catch (IOException ex) {
}
}
}