Java Socket - 服务器没有响应

标签 java sockets client-server

我在 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/

相关文章:

c# - 无法分配新套接字,抛出无效参数异常

java - 不在同一 IP 范围内时无法连接 Socket。 (子网)

Android套接字无法连接到服务器

android - 如何在游戏中设计一个用户到多个用户的应用消息服务

java - 客户端如何通过外部IP地址连接到服务器?

java - 模式匹配数字/运算符

java - Android 权限。INTERACT_ACROSS_USERS 拒绝

java - 嵌套的 Java 集合泛型

Java 'project manager'? (评论、类观点等...)

node.js - NodeJs 长时间不活动后错误 : This socket has been ended by the other party