0
我正在尝试从node.js(服务器)连续发送字节到Android(客户端)。让我展示代码示例。在node.js中分别发送套接字数据
var net = require('net');
var server = net.createServer(function(c){
c.on('data', function(data){
if(data == 'foo'){
for(var i = 1; i <= 255; i++){
var byteData = makeBytedata();
c.write(byteData);
wait(100)
}
}
});
});
此代码无法正常工作,因为它有时会将byteData组合到一个数据包中。有没有人有解决方案分别发送字节?
这是一个很难理解你在问什么,但您可能需要阅读本关掉它可以合并单独写进Nagle算法延迟常见的数据包:https://nodejs.org/api/net.html#net_socket_setnodelay_nodelay。此外,nodejs服务器中的“wait(100)”可能是错误的设计,因为nodejs是单线程的,在硬连线的等待循环期间它不能做任何事情。 – jfriend00
谢谢。我在for循环之前插入c.setNoDelay(true),但组合了字节。 – yosh
“字节组合”是什么意思?在TCP中,当连接另一端的客户端从套接字读取数据时,它可能会读取所有可用的字节。这就是TCP的工作原理。这不是数据报协议。 – jfriend00