udp 组播,客户端运行几分钟后就接受不到消息?
发布于 7 年前 作者 yoyo-git 5913 次浏览 来自 问答

udp 组播两个服务,接收端运行一会后就无法继续收消息,重启以后又恢复正常几分钟。 server: const config = require(’…/config’); const logger = require(’…/handler/logger’); const dgram = require(‘dgram’); var mserver = dgram.createSocket(“udp4”);

mserver.bind(()=>{ mserver.setBroadcast(true); mserver.setMulticastTTL(128); mserver.addMembership(config.mudp.mip); });

module.exports = function (msg) { logger.info(send event: ${msg}); var message = Buffer.from(msg); mserver.send(message, 0, message.length, config.mudp.port, config.mudp.mip); };

clinet: const logger = require(’./logger’); const config = require(’…/config’); const dgram = require(‘dgram’); var client = dgram.createSocket(‘udp4’);

exports.start = function () { “use strict”; client.on(‘error’, err => { logger.error(server error:\n${err.stack}); server.close(); }); client.on(‘listening’, () => { var address = client.address(); logger.debug(UDP Client listening on ${ address.address }: ${address.port }); client.setBroadcast(true); client.setMulticastTTL(128); client.addMembership(config.mudp.mip); });

client.on('message', (message, remote) => {
    logger.info(`message From:${remote.address} : ${remote.port} - ${message}`);
});
client.bind({host: config.mudp.server, port: config.mudp.port, exclusive: false});
logger.debug(`UDP Client listening `);

};

运行几分钟后,client 端就再也收不到消息了。server端其实一直在发消息,server端发送消息不算多,几百条,内容不长。自己以及调试两天多了,没有头绪。向各位请教了。

1 回复

问题解决了,与代码无关,是公司网络设置不允许组播消息。昨天就解决了。

回到顶部