【问题标题】:C#-Lua UDP incompatibility (no message received)C#-Lua UDP 不兼容(未收到消息)
【发布时间】:2018-08-11 23:14:18
【问题描述】:

我的问题: C# 应用程序 (.NET 4.6.1) 发送的 UDP 消息未显示在 Lua 客户端中(LOVE 0.9.2 与捆绑的 LuaSocket)。
发送代码非常简单:

UdpClient listener = new UdpClient(port);
listener.Send(bytes, bytes.Length, "client_ip", 1234);

接收代码也比较简单:

local socket = require("socket")
local address,port = "server_ip",1234
local udp = socket.udp()
udp:settimeout(0)
udp:setpeername(address,port)
local data,msg_ip,port_nil

function love.update(dt)
    repeat
        data,msg_ip,port_nil = udp:receive()
        if data then
            print(data)
        elseif msg_ip~="timeout" then
            print(msg_ip)
        end
    until not data
end

【问题讨论】:

  • 不需要udp:setsockname('*',port)绑定接收socket监听吗?设置对等点是设置此套接字将发送到的位置,而不是它侦听的位置。你在一个临时端口上。
  • 我不敢相信我错过了。像魅力一样工作,完全固定。谢谢。

标签: c# lua udp luasocket


【解决方案1】:

正如迈克尔所说,事实上,问题不在于 UDP 实现不兼容。我忘记在我的客户端 Lua 代码中包含 udp:setsockname('*',port),这是一个完全不同且容易得多的问题。除非有投诉,否则我会留下这个错误的问题,希望能帮助任何其他被误导的灵魂。

【讨论】:

    猜你喜欢
    • 2015-11-10
    • 1970-01-01
    • 2020-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多