nodejs创建的TCP服务器如何判断客户端发送的数据流结束

nodejs使用net模块建立tcp服务器端,服务器端接受数据是用chunk这个buffer来接受的,数据会分块,我想等数据读取结束后调用一个函数来处理数据。
但是我没有找到这个流结束的事件。
注意是数据流结束的事件,而不是socket停止的事件

阅读 5.6k
3 个回答

还是没明白具体lz想干什么,但是net模块end事件并不是代表socket关闭,相反,close事件才是代表socket关闭。当收到FIN package的时候才会触发end事件

结束是有end事件的.

var server = net.createServer(function(c) { // Connection监听器
  console.log("服务器已连接") ;
  c.on("end", function() {
    console.log("服务器已断开") ;
  }) ;
  c.on("data",function(data){
    //我是数据
  })
  c.write("Hello,Bigbear !\r\n") ;
  c.pipe(c) ;
}) ;

我试了一下,发现如果是client.end(data) 在server端close事件和end事件都会触发,如果是client.write(data)在server端end事件和close事件都不会触发。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题