【发布时间】:2011-04-30 15:00:54
【问题描述】:
我正在尝试通过 TCP 套接字(使用 protobuf 序列化)将消息(字节数组)从 Node.js 发送到 Java。
我在 java 端创建一个服务器套接字,并从 Node 连接到它:
var client = net.createConnection(12345, "localhost")
client.addListener("connect", function(){
client.write(serializedMsg1)
client.end(serializedMsg2)
})
在 java 端,我从输入流中获取内容并对其进行反序列化:
Protocol1.parseFrom(inputStream);
Protocol2.parseFrom(inputStream);
问题如下 - 看起来只有 serializedMsg2 被传递/反序列化,而 serializedMsg1 被忽略。据我了解,它发生了,因为字节流没有分隔,并且应该明确指定数据块的大小。不应直接从 java 端的流中读取数据 - 应首先读取分隔的 chunkd,然后将其反序列化为字节数组。
【问题讨论】:
标签: java tcp node.js protocol-buffers