从客户端向服务器发送消息

时间:2021-04-23 16:07:14

标签: java server client

我在将消息从客户端发送到服务器以及从服务器发送到其他客户端时遇到问题。请你告诉我一些事情来帮助我。 问题是,如果我输入(第 46 行),我可以从服务器(第 51 行)得到答案,然后继续这个循环。 但是,例如,如果服务器必须通知用户轮到他了,那么在我尝试输入内容之前我不会收到消息。

while ((userInput = stdIn.readLine()) != null) {
    /* line 46 */ out.println(userInput);
    if (userInput.equals("quit")) {
        break;
    }

    /* line 51 */ lines = in.readLine();
    System.out.println(lines);

    System.out.println("input next command:");
}

1 个答案:

答案 0 :(得分:0)

你必须制作(至少我不知道怎么做)一个单独的线程来获取用户输入,然后使用消息传递(只需搜索“消息传递java”)进行通信。服务器消息不会被输入阻止,您可以在频道上tryReceive(或该行周围的某个名称)。在主线程中从服务器查询消息,然后从输入通道,睡一会儿并重复。当用户按下回车键时,频道会填满他的消息,主线程路过时会接收它。