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

Minecraft OpenComputers跨远距离通信问题:Linked Card编程困惑

超远距离服务器-计算机通信解决方案

无需Linked Card的替代方案

  • 区块加载器+无线Modem中继:
    普通无线Modem的通信受区块加载限制,你可以在通信路径的关键节点放置区块加载器,确保中间区块始终处于加载状态。然后用多个计算机作为中继节点,每个节点的无线Modem监听指定端口,收到消息后转发到下一个节点的Modem,以此实现远距离通信。
    中继节点示例代码:
    local modem = peripheral.find("wireless_modem")
    if not modem then error("No wireless modem found!") end
    local listenPort = 1234
    local forwardPort = 1235
    modem.open(listenPort)
    
    while true do
      local event, side, channel, replyChannel, message, distance = os.pullEvent("modem_message")
      print("Forwarding message: " .. message)
      modem.transmit(forwardPort, listenPort, message)
    end
    

Linked Card通信代码实现

Linked Card通过配对实现无限范围通信,无需依赖Modem,以下是基础通信代码:

接收端代码

-- 查找Linked Card组件
local linkedCard = peripheral.find("linked_card")
if not linkedCard then error("未找到Linked Card!") end

local myID = linkedCard.getID()
print("监听中,当前卡片ID:" .. myID)

-- 循环监听消息事件
while true do
  local event, senderID, message = os.pullEvent("linked_message")
  print("收到来自 " .. senderID .. " 的消息:" .. message)
  -- 可选:回复消息
  linkedCard.sendMessage(senderID, "已收到消息:" .. message)
end

发送端代码

local linkedCard = peripheral.find("linked_card")
if not linkedCard then error("未找到Linked Card!") end

-- 替换为接收端卡片的ID(可从接收端控制台获取)
local targetCardID = "xxxxxx-xxxxxx-xxxxxx"
local sendMessage = "服务器请求:获取当前状态"

-- 发送消息
linkedCard.sendMessage(targetCardID, sendMessage)
print("消息已发送至 " .. targetCardID)

使用前需先将两张Linked 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 08:25:04