C#-Lua UDP不兼容(未收到消息)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#-Lua UDP不兼容(未收到消息)相关的知识,希望对你有一定的参考价值。

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

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
答案

正如Michael所说,问题实际上并不是UDP实现中的不兼容性。我忘了在我的客户端Lua代码中包含udp:setsockname('*',port),这是一个完全不同且更容易的问题。除非有投诉,否则我会留下上瘾的问题,以期帮助任何其他被误导的灵魂。

以上是关于C#-Lua UDP不兼容(未收到消息)的主要内容,如果未能解决你的问题,请参考以下文章

服务器端口未收到 UDP 消息

Python 之 Socket编程(TCP/UDP)

未使用 PYQT5 多播 UDP 接收数据报

设备未收到 GCM 消息

LUA解析器和系统 FREERTOS 兼容吗

关于Java聊天收到消息自动弹出窗口代码