我与插座在使用该命令服务器的NodeJS:如何从TCP套接字在断开的NodeJS
client = net.createConnection()
我怎么能那么正确地从服务器断开?
我试图client.end()
甚至client.destroy()
但是当我用netstat查看连接状态则说明该连接处于状态FIN_WAIT2。
如何关闭并彻底销毁连接?
我与插座在使用该命令服务器的NodeJS:如何从TCP套接字在断开的NodeJS
client = net.createConnection()
我怎么能那么正确地从服务器断开?
我试图client.end()
甚至client.destroy()
但是当我用netstat查看连接状态则说明该连接处于状态FIN_WAIT2。
如何关闭并彻底销毁连接?
net.createConnection()
返回一个Socket对象。 client.destroy()
是你想要做的。
来源:http://nodejs.org/docs/latest/api/net.html#socket.destroy
end和destroy有什么区别?摧毁后,我也看到netstat中的状态FIN_WAIT2。 – mgamer 2012-02-08 15:44:03
@mgamer''end()''只关闭套接字的写入流,远程主机可以保持写入流打开并发送数据 – bara 2014-02-11 19:34:18
通过文档说“只有在出现错误时才需要”,似乎是唯一的方法关闭连接。对于我自己,我使用'socket.close = function(data) \t \t { \t \t \t var Self = this; \t \t \t如果(数据) \t \t \t \t this.write(数据,函数(){Self.destroy();}); \t \t \t别的 \t \t \t \t this.destroy(); \t \t};' – Fr0sT 2015-06-10 09:06:19
你想要的是client.close(),客户端则保持活着将来的连接。如果你不想在不久的将来使用这个连接,你可以摧毁它()。我不得不说,在我看来,net.Socket中的语义并不一致。你连接()一个套接字和相反是关闭()。 open()一个Socket会更合适。客户端()发送鳍数据包到服务器
你试过'client.close()'? – fent 2012-02-08 11:03:59
没有client.close方法 – mgamer 2012-02-08 11:37:30