我有一个电子客户端/服务器应用程序,其中服务器通过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?
发布于 2017-12-22 02:14:55
我没有使用过node-ipc,但我非常确定,对于要建立的客户端-服务器套接字连接,只有客户端需要知道服务器的地址。
对此有多种解决方案。你可以...
<代码>H110如果是小型专用项目,请使用类似C11的服务来“隧道”服务器的端口<代码>H212<代码>F213
发布于 2017-12-30 15:47:08
我找到了一种方法,只需使用计算机名(我有权访问)就可以与我的服务器通信。
因此,将NodeIPC.config.networkHost = 'ServerName';添加到我的客户端就起到了作用。这样,我只需要正确地设置我的服务器的名称,而不需要接触IP地址。
https://stackoverflow.com/questions/47922015
复制相似问题