我在Java中遇到Socket
的问题。我想将username
从CLIENT发送到SERVER。
在服务器上,我检查不应该有任何其他用户具有相同的username
。
用户名存储在HashMap 中。
我正在根据以下条件从SERVER向CLIENT发送消息
如果用户存在同名:
重复的用户名。再试一次
如果用户不存在:
行
客户端验证我们收到的消息是是否正确。
问题是当我从SERVER发送消息时,CLIENT没有收到任何消息。
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);
}
Server.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);
答案 0 :(得分:0)
你正在读行,但你不是在写行。在OK消息中添加行终止符,并从该源添加所有其他终止符。