将TCP客户端的主机名发送到Node JS中的服务器

时间:2016-08-04 16:46:39

标签: node.js sockets tcp client hostname

我有一台主服务器计算机(Windows 10),我用它在节点js中使用TCP控制多个Raspberry PI。

我想知道将每个pi的主机名(pi-001.local,pi002.local,pi003.local等...)发送到服务器的最佳方法是什么。

在服务器上运行socket.remoteAddress会返回客户端的IP,但我需要的是主机名

显然,每个pi都可以使用os.hostname()方法解析自己的主机名 但是我需要跟踪并知道每个net.Socket对象在服务器端上关联的主机名。

有没有比通过socket.write(os.hostname())发送它更好的方法?

谢谢!

2 个答案:

答案 0 :(得分:1)

只要TCP服务器使用的DNS服务器知道PI设备的主机名,您就可以让TCP服务器为每个连接执行socket.remoteAddress的反向查找。您可以使用dns.reverse()在节点中执行此反向查找。

答案 1 :(得分:0)

这已经在SMTP协议中完成了,这是一个用于TCP协商的好模型。使用这种方法,你的Pi在连接服务器时会做的第一件事是写一个

HELO pi00001.local

......这样,您的服务器总是希望通过每次连接或重新连接从Pi预先获得信息。