首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java套接字writeByte和换行符

Java套接字writeByte和换行符
EN

Stack Overflow用户
提问于 2014-04-23 22:02:36
回答 1查看 1.6K关注 0票数 0

我有个问题想问一些我不太明白的问题。

如果我使用代码片段:

代码语言:javascript
复制
DataOutputStream dataoutput = new DataOutputStream(Socket.getOutputStream());

dataoutput.writeBytes(diagnostics);
dataoutput.flush();

输出:从服务器发送到客户端的诊断挂起,即使使用.flush()也无济于事。只有关闭套接字才会释放数据包。

但是,如果我添加一个换行符:

代码语言:javascript
复制
dataoutput.writeBytes(diagnostics+"\n");

它工作得很完美。如果你复制代码,

代码语言:javascript
复制
dataoutput.writeBytes(diagnostics);
dataoutput.writeBytes(diagnostics);

您得到的输出与使用没有重复数据的/newline的输出相同。为什么?

编辑:客户端。

代码语言:javascript
复制
incoming = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
response = incoming.readLine();
EN

回答 1

Stack Overflow用户

发布于 2014-04-23 22:23:59

就像那些好家伙在注释中放的一样,你应该使用flush来强制将有效负载发送到流的目的地。但如果这不起作用,我建议尝试以下方法:

代码语言:javascript
复制
    DataOutputStream dataoutput = new DataOutputStream(System.out);

    dataoutput.writeBytes(diagnostics);
    dataoutput.flush();

因此,现在目的地将是“本地”控制台。并且流的源和目标之间没有远程连接,也许您可以自己尝试一下,看看“本地”是否正常工作(并专注于DataOutputStream行为),然后开始处理远程流过程。

这是不是太多了,但希望它能有一点帮助!

问候!!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23246735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档