Java Socket - 服务器没有响应

时间:2016-03-04 10:55:22

标签: java sockets client-server

我在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);

1 个答案:

答案 0 :(得分:0)

你正在读行,但你不是在写行。在OK消息中添加行终止符,并从该源添加所有其他终止符。