You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UDP数据报服务器无法接收远程计算机数据包求助

UDP服务器本地可接收但远程无法接收的问题

我在Electron程序中使用UDP/datagram模块创建了一个UDP监听服务器,将套接字绑定到本地非回环IP地址(192.168.2.64)和8500端口。套接字运行无报错,可在Process Explorer中看到已打开的套接字。本地使用Packet Sender发送的测试数据包能被正常接收,但远程计算机发送的数据包完全没有响应,开发者工具中也无相关日志。

代码实现

代码几乎完全取自Node.js官方文档:

const dgram = require('dgram');
const server = dgram.createSocket('udp4');

server.on('error', (err) => {
    console.error(`server error:\n${err.stack}`);
    server.close();
});

server.on('message', (msg, rinfo) => {
    console.log(`server got: ${msg} from ${rinfo.address}:${rinfo.port}`);
});

server.on('listening', () => {
    const address = server.address();
    console.log('UDP address:', address);
    console.log(`server listening ${address.address}:${address.port}`);
});

server.bind(8500, '192.168.2.64', () => {
    console.log('bind callback!');
});

环境信息

  • 本地计算机:Windows 11
  • 远程计算机:Windows 10
  • Electron版本:23.2.4
  • Node.js版本:18.14.2

启动日志

启动时控制台输出如下:

UDP address: { address: '192.168.2.64', family: 'IPv4', port: 8500 }
server listening 192.168.2.64:8500
bind callback!
server got: Testing 1, 2, 3... from 192.168.2.64:8501
server got: Testing 1, 2, 3... from 192.168.2.64:8501
server got: Testing 1, 2, 3... from 192.168.2.64:8501

已排查的内容

  • 关闭了两台计算机的防火墙
  • 两台计算机上的Packet Sender实例之间可以正常交换消息
  • Wireshark中能看到远程发送的数据包(本地发送的数据包需通过回环捕获才能看到,推测是网卡将自身IP发送的数据包视为回环流量)
  • 两台计算机均连接到同一桌面以太网交换机,属于同一局域网

恳请各位提供解决思路。

内容的提问来源于stack exchange,提问作者Dave Colter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 08:19:58