冲洗node.js袜子写

时间:2018-09-16 07:30:12

标签: node.js sockets

我有一个node.js示例,其中客户端套接字对服务器进行了两次写入。我试图确保服务器使用socket.write和回调函数一个接一个地接收写操作:

  var net = require('net');

const HOST ='127.0.0.1';
const PORT = 7000;

var server = new net.Server(socket => {
    socket.on('data',data => {
        console.log(“服务器已收到:” +数据);
    })
});
server.listen(PORT,HOST);

var client = new net.Socket();
client.connect(PORT,HOST);
client.write(“ call 1”,“ utf8”,()=> {
    client.write(“ call 2”);
});
 

当我运行它时,我得到输出:

 服务器收到:呼叫1呼叫2
 

根据此处的文档 https://nodejs.org/api/net.html# net_socket_write_data_encoding_callback

  

...最终写出数据时将执行可选的回调参数...

数据最终被写出是什么意思?如何使服务器产生:

 服务器收到:呼叫1
服务器收到:呼叫2
 

谢谢, 丁哥

2 个答案:

答案 0 :(得分:1)

您正在处理流。它对邮件的开头和结尾一无所知。

  1. 您需要添加定界符(例如\nclient.write("call 2\n");
  2. 您需要在接收器上使用定界符分割数据(例如,节点分割包)。

答案 1 :(得分:0)

您可以为第二个事件设置超时。

client.write("call 1", "utf8")
setTimeout(() => {
   client.write("call 2");
 }, 100);