本文主要是介绍nodejs udp ERR_SOCKET_DGRAM_NOT_RUNNING 解决方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
跑了很久的代码程序,以前也一直是正常的,这次用户反映说收不到数据,排查发现是udp这块出错了。
我这边用的nodejs的dgram模块进行的udp传输;需求呢就是我这边设备每采集到一条数据就通过udp推送到客户平台。
我这边的原先发送数据的客户端代码大致如下:
const dgram = require('dgram');
const client = dgram.createSocket('udp4');
module.exports = sendToPlatform = {sendData: body => {const message = `2000#${body.timestamp}#${body.content}`client.send(message, 0, message.length, 41234, '192.168.1.7', (err) => {console.log(err)client.close()} }
}
然后就是数据每采集到一条就调用一次sendData方法,自己模拟的服务器数据接收端有一直正常开启着;
但是服务器端每次只能收到一条数据,然后就再也收不到了;重启下客户端程序又是只能收到一条;
查看日志发现报错:ERR_SOCKET_DGRAM_NOT_RUNNING
查看dgram包发现这个错误描述是说:A call was made and the UDP subsystem was not running.
最后解决办法:注掉client.close()。。折腾了半天没想到就这样解决了
至今不太明白为啥我以前本机自己模拟都没有出错,跨机器就会因为这句话出错!
这篇关于nodejs udp ERR_SOCKET_DGRAM_NOT_RUNNING 解决方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!