mga*_*mer 29 javascript sockets tcpsocket node.js
我使用以下命令连接到NodeJs中的套接字服务器:
client = net.createConnection()
Run Code Online (Sandbox Code Playgroud)
如何才能正确断开与服务器的连接?
我试过client.end()甚至client.destroy()
但是当我使用netstat检查连接状态时,它显示连接处于FIN_WAIT2状态.
如何完全关闭并破坏连接?
JP *_*son 24
net.createConnection()返回一个Socket对象.client.destroy()是你想要做的.
资料来源:http://nodejs.org/docs/latest/api/net.html#socket.destroy
Jan*_*ith 11
这是默认的TCP连接终止顺序,
通过调用client.end()节点,js将FIN数据包发送到服务器,服务器将以FIN数据包响应到客户端以接受套接字终止。
从nodejs文档开始socket.end,是什么,
半关闭插座。即,它发送FIN数据包。服务器可能仍会发送一些数据。
收到FIN数据包后,会自动关闭从客户端到服务器的连接,并socket.on('close', .. )触发该连接并将ACK发送回去。
因此,通过在服务器和客户端之间达成一致来终止连接,以便服务器能够发送关闭连接之前可能需要的数据。
但是,在调用时socket.destroy,客户端连接将被破坏,而不会强行接收FIN数据包,这是避免这种情况的最佳做法。
参考:
我在 GNU/Linux 下安装了 nodejs 版本 11.15.0;在此配置中断开类似 telnet 的客户端的唯一方法是调用
socket.destroy()
Run Code Online (Sandbox Code Playgroud)
其他方法 onsocket根本不存在(例如:close()或disconnect());发射close或end事件也不起作用。
| 归档时间: |
|
| 查看次数: |
41412 次 |
| 最近记录: |