gpt4 book ai didi

java - PrintWriter 不发送我的字符串 (TCP/IP)

转载 作者:行者123 更新时间:2023-12-01 15:05:12 24 4
gpt4 key购买 nike

我正在制作一个具有基本聊天功能的java小程序(您可以发送/接收消息)。我已经创建了一个单独的线程来处理客户端版本上的连接,并且服务器也为每个连接的客户端创建了一个线程。

在客户端的 run() 方法中,我有一个 while 循环来读取收到的任何消息:

while (state == ConnectionState.CONNECTED) {
out.println("Hello Server");
out.flush();
String input = in.readLine();
System.out.println(input);
if(input == null){
connectionClosedFromOtherSide();
}
else {
received(input);
System.out.println(String.format("Recieved something: %s", input));
}
}

这是我的 PrintWriter 和 BufferedReader。出于调试目的,我将“hello server”放在这里。此代码工作正常,但问题在于 sendtext() 方法:

synchronized private void sendText(String tosend) {
if(out != null && state == ConnectionState.CONNECTED){
out.print(tosend);
out.flush();
System.out.println(String.format("sending %s to server", tosend));
}
}

由于某种原因,如果我调用此方法,服务器端不会收到它。 (但是控制台确实显示已发送)

有人可以帮我解决这个问题吗?

最佳答案

客户端,每个

String input = in.readLine(); // read until newline

应该在服务器端平衡

out.println( tosend ); // print the newline expected by the client

out.flush() 不要发送换行符。

关于java - PrintWriter 不发送我的字符串 (TCP/IP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13057740/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com