Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 写入字节放入CR_Java_Sockets - Fatal编程技术网

Java 写入字节放入CR

Java 写入字节放入CR,java,sockets,Java,Sockets,我的java微服务在套接字中写入: serverOutput.writeBytes(gson.toJson(productFound.toString()); System.out.println(gson.toJson(productFound.toString()); println显示正确的内容,这正是我所期望的: { "id": "S10_1678", "name": "1969 Harley Davidson Ultimate Chopper", "price": "48

我的java微服务在套接字中写入:

serverOutput.writeBytes(gson.toJson(productFound.toString());
System.out.println(gson.toJson(productFound.toString());
println显示正确的内容,这正是我所期望的:

{
  "id": "S10_1678",
  "name": "1969 Harley Davidson Ultimate Chopper",
  "price": "48.81"
}
但当我在节点服务器中接收到它,并在发送到浏览器之前打印它时

client.on('data',(data)=>{
log(data.toString());
res.end(data.toString());
});
似乎已经注入了CR,这使得JSON格式不再正确。console.log会打印我:

{

  "id": "S10_16
78",
  "name": "1969 Harley Davidson Ultimate Chopper",
  "price": "48.81"
}

因此,浏览器只接收
{
并告诉我Json格式不正确。

您是否尝试嗅探网络流量以验证
writeBytes()
传输的原始字节中是否存在CR?与其使用
writeBytes()
,不如尝试将
字符串
编码为
字节[]
使用
String.getBytes()
数组,然后使用
write()发送
字节[]
相反。这将帮助您消除关于CR是否被注入的任何疑问。可能只是接收端上的一个错误。谢谢!我这样做了,并且成功了。我仍然无法理解,为什么使用write从字符串中获取字节有效?为什么writeByte添加了回车符?是否使用网络嗅探进行验证r、 像Wireshark或Fiddler一样,这就是实际注入CR的
writeBytes()
只需截断
字符串中每个
字符的顶部8位,并按原样传输底部8位。CR是byte
0x0D
,您的
字符串
是否可能有一个类似
0x\0D
字符?