我有一个电子客户端/服务器应用程序,其中服务器通过LAN与几个客户端进行通信。此通信是通过node-ipc
建立的。
问题是,我无法控制LAN DHCP。所以在启动时我不知道服务器IP,更糟糕的是,在服务器启动之前,客户端已经准备就绪。
所以我的服务器脚本是:
const NodeIpc = require('node-ipc');
NodeIpc.config.id = 'world';
NodeIpc.config.retry = 1500;
NodeIpc.config.networkHost = FunctionToReadIP();
NodeIpc.serveNet(
function () {
whatever();
});
在客户端:
const NodeIPC = require('node-ipc');
NodeIPC.config.id = ClientID;
NodeIPC.config.retry= 1500;
NodeIPC.connectToNet(
'world',
function(){
NodeIPC.of.world.on(
'connect',
function(){
NodeIPC.of.world.emit('Data.fromClient',{data: ClientID});
}
);
});
只要我在一台机器上测试一切,它就能很好用,但我无法连接其他机器。我有任何方式服务器和客户端可以在启动后立即找到对方,而不知道谁拥有哪个IP?
答案 0 :(得分:0)
我没有使用node-ipc
,但我很确定要建立客户端 - 服务器套接字连接,只有客户端需要知道服务器的地址。
这有多种解决方案。你可以......
答案 1 :(得分:0)
我找到了一种通过使用计算机名称(我有权访问)与我的服务器通信的方法。
因此,向我的客户添加NodeIPC.config.networkHost = 'ServerName';
就可以了。这样我只需要正确设置我的服务器名称,而不必触摸IP地址。