我正在尝试在发送下一个数据块之前刷新套接字:
var net = require('net');
net.createServer(function(socket) {
socket.on('data', function(data) {
console.log(data.toString());
});
}).listen(54358, '127.0.0.1');
var socket = net.createConnection(54358, '127.0.0.1');
socket.setNoDelay(true);
socket.write('mentos');
socket.write('cola');
Run Code Online (Sandbox Code Playgroud)
然而,尽管有setNoDelay选项,但这不起作用,例如打印"mentoscola"而不是"mentos \ncola".我该如何解决?
查看WriteableStreamapi和相关示例,您似乎应该自己设置休息或分隔符.
exports.puts = function (d) {
process.stdout.write(d + '\n');
};
Run Code Online (Sandbox Code Playgroud)
因为您的套接字是一个流,所以数据将在没有您直接控制的情况下进行写入/读取,并且#write不会更改您的数据或假设您在写入之间中断,因为您可能通过套接字流式传输大量信息可能想设置其他分隔符.
我绝对不是这方面的专家,但这对我来说似乎是合乎逻辑的答案.
编辑:这是Nodejs流的重复,结论与我指定的答案相同:使用流不是逐行的,设置自己的分隔符.
| 归档时间: |
|
| 查看次数: |
8186 次 |
| 最近记录: |