本人用TCP编写了一个服务器程序,使用多线程,以Windows系统自带的telnet作为客户端进行通信。接收客户端的字符串,经过一定处理之后发送给客户端。在发送字符串时遇到以下问题:
我使用了PrintWriter作为包装类,调用println方法进行打印,如下所示:
pw.println(str+"--->"+ str2 );
str是服务器接收的原字符串,str2是服务器转换后的字符串。此语句运行正常,telnet能够正常接收。如果改成这样为什么就接收不到数据了呢?
pw.print(str+"--->"+ str2 + "\r\n");
通过检验,服务器确实将该字符串发送出去了,但是telnet就是没有接收到。
我使用windows系统,所以换行的话应该使用"\r\n",没错啊。
即使我把"\r\n"改成了System.getProperty("line.separator"),也不行啊。
但是如果我在pw.print(str+"--->"+ str2 );
后面输入pw.println(),就能够正常接收了。求高人解答!