My problem here is that everytime the client is asked to key in a number, on the server it keeps repeating:
Client from /127.0.0.1 connected.
Client said: Greetings
Client from /127.0.0.1 connected.
Client said: Greetings
etc.. how can i stop this guys? It's basically a game and the server uses MagicNumber to generate a random number and the client has to guess it within 10 goes!
Server:
Code:
public class GuessNumberServer {
public static void main (String args[]) throws IOException {
MagicNumber mnumb = new MagicNumber();
ServerSocket server = new ServerSocket(1357);
System.out.println("Waiting for client..");
while (true) {
try {
Socket client = server.accept();
System.out.println("Client from " + client.getInetAddress() + " connected.");
DataOutputStream out = new DataOutputStream(new BufferedOutputStream(client.getOutputStream()));
DataInputStream in = new DataInputStream(new BufferedInputStream(client.getInputStream()));
String inmessage = in.readUTF();
System.out.println("Client said: " + inmessage);
int clientnumber = in.readInt();
String result = mnumb.guess(clientnumber);
if ((result == "Congratulations! Your guess was correct.") || (mnumb.getFinished())) {
String end = "The game is now over.";
out.writeUTF(end);
out.flush();
client.close();
server.close();
} else {
out.writeUTF(result);
out.flush();
}
} catch (Exception e) { }
}
}
}// GuessNumberServer
Client:
Code:
public class GuessNumberClient {
public static void main (String args[]) throws IOException {
while (true) {
try {
Socket server = new Socket("localhost", 1357);
DataOutputStream out = new DataOutputStream(new BufferedOutputStream(server.getOutputStream()));
DataInputStream in = new DataInputStream(new BufferedInputStream(server.getInputStream()));
String outmessage = "Greetings";
out.writeUTF(outmessage);
out.flush();
System.out.println("Key in a guess number:");
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));
int number = Integer.parseInt(stdin.readLine());
if ((number < 1) || (number > 100)) {
System.out.println("You have chosen to end the game.");
server.close();
break;
} else {
out.writeInt(number);
out.flush();
String inmessage = in.readUTF();
System.out.println("The server said: " + inmessage);
}
} catch (Exception e) { }
}
}
}// GuessNumberClient
Any help will be much appreciated! Here is an attachment if you guys want to see the problem for yourself when you run both the server and client together: