我在 Java 中遇到 Socket
问题。我想将用户名
从客户端发送到服务器。
在服务器上,我正在检查不应有任何其他用户具有相同的用户名
。
用户名存储在 HashMap 中。
我根据以下条件从服务器向客户端发送消息
如果存在同名用户:
Duplicated username. Try again
如果用户不存在:
OK
客户端验证我们收到的消息是否正常。
问题是当我从服务器发送消息时,客户端没有收到任何消息。
Client.java
System.out.println("Enter nickname: ");
while(response == null || !response.equals("OK")) {
message = br.readLine(); // reading from standard input
out.println(message);
out.flush();
response = in.readLine(); // here client is waiting for return message
System.out.println(response);
}
服务器.java
username = input.readLine();
while(clientOutputs.containsKey(username)) {
output.write("Duplicated username. Try again: ");
output.flush();
username = input.readLine();
}
output.write("OK");
output.flush();
clientOutputs.put(username, output);
最佳答案
你正在读台词,但你没有写台词。将行终止符添加到 OK 消息以及来自该源的所有其他消息。
关于Java Socket - 服务器没有响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35794239/