yinkai1205 2011-03-14 11:16
浏览 174
已采纳

将println替换为“\r\n”时的问题

本人用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(),就能够正常接收了。

谁能帮忙解释解释?

  • 写回答

2条回答 默认 最新

  • enet_java 2011-03-14 11:55
    关注

    是不是因为没有flush。
    pw.print(str+"--->"+ str2 + "\r\n");
    pw.flush();
    看看可以不?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?