重新连接不同的IP后,Socket.remoteAddress不会更新

我正在编写通过TCP与测量传感器进行通信的NWJS应用程序。 我正在使用一个套接字实例。 当build立连接(连接事件)时,我使用remoteAddress属性来显示当前连接的传感器的IP地址。

问题:

  • 我连接到IP地址上的传感器,比如说A,remoteAddress和_host socket属性都是正确的。
  • 我使用socket.destroy()断开传感器
  • 我将应用程序连接到IP地址B上的另一个传感器,然后出现问题 – remoteAddress属性显示错误的以前的地址A,但_host属性显示B

最小步骤重现(交互式nodejs控制台):

net = require('net') socket = new net.Socket() socket.connect("192.168.0.20", 1028) //socket.remoteAddress is 192.168.0.20, socket._host is 192.168.0.20, socket.destroy() //later socket.connect("192.168.0.17", 1028) //socket.remoteAddress is 192.168.0.20, socket._host is 192.168.0.17 

我可以通过每次创build传感器套接字的新实例或者使用_host属性来解决这个问题,但是想讨论这个行为的原因(bug?)

       

网上收集的解决方案 "重新连接不同的IP后,Socket.remoteAddress不会更新"