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

服务器双网卡消息转发故障求助:仅Linked Card可Pull,Network Card失效

解决方案

问题根源

你的代码仅通过单次阻塞的event.pull("modem_message")监听消息,既没有确保Network Card对应的modem启用并打开端口,也没有处理多modem的消息分发,导致只能捕获到Linked Card的消息,无法响应Network Card的消息。

具体修复步骤

1. 初始化并启用两个Modem

首先绑定Linked Card和Network Card对应的外设,启用并打开与通信方匹配的端口:

-- 根据实际设备位置替换"left"/"right",示例为Linked Card在左侧、Network Card在右侧
local linkedModem = peripheral.wrap("left")
local networkModem = peripheral.wrap("right")

-- 打开对应接收端口,端口号需和PC、服务器2的通信端口一致
linkedModem.open(123)  -- PC与服务器1的通信端口
networkModem.open(456) -- 服务器2与服务器1的通信端口

2. 循环监听并分发所有Modem消息

将单次event.pull改为循环监听,通过modem地址判断消息来源,执行对应转发逻辑:

while true do
    local _, _, from, port, _, message = event.pull("modem_message")
    
    -- 消息来自Linked Card(PC),转发至服务器2
    if from == linkedModem.getAddress() then
        networkModem.transmit(456, port, message)
    -- 消息来自Network Card(服务器2),转发至PC
    elseif from == networkModem.getAddress() then
        linkedModem.transmit(123, port, message)
    end
end

3. 排查验证点

  • 确认Network Card物理连接正常,已接入服务器2所在网络
  • 检查服务器2发送消息的端口与服务器1Network Card打开的端口完全一致
  • 可临时添加print("Received from:", from)打印消息来源地址,验证是否能接收到Network Card的消息

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 10:57:23