3
我使用tcp传输数据。服务器代码由C编写,客户端代码由nodejs编写。 当我发送一个缓冲区时,客户端有时会接收到这个缓冲区的两部分,console.log函数会触发两次,但有时它会工作正常。 以下是nodejs代码和C代码。 的NodeJS代码:nodejs从C接收到的缓冲区分为两部分
var client = new net.Socket();
client.on('data', function(data) {
console.log('data:', data)
});
的C代码:
send(socket_file, buffer, strlen(buffer),0)
这就是流在Node中的工作方式:它们可能会触发多个“数据”事件(+各种其他事件)。如果您需要汇总服务器发送的整个消息,则可能必须进行一些内部管理。 – robertklep
@robertklep非常感谢! – fiona