我正在制作一个具有基本聊天功能的Java小程序(您可以发送/接收消息)。我已经创建了一个单独的线程来处理客户端版本上的连接,并且服务器也为每个连接的客户端创建一个线程。PrintWriter不会发送我的字符串(TCP/IP)
在客户端我有一个while循环来读信息的run()方法收到:
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。为了调试的目的,我把'你好服务器'放在这里。此代码工作正常,但问题是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));
}
}
出于某种原因,如果我调用这个方法,它没有收到在服务器端。 (但控制台确实显示它已发送)
任何人都可以请帮我解决这个问题吗?
你可以把'out.print()'改成'out.println()'吗?您正在发送一些没有换行符的数据,而另一方则预计全行。 –
你能展示更多类似于这个类的代码吗?你已经定义了sendText() – Vikram
PrintWriter是什么意思?请包括声明和你如何创建实例 – amphibient