lua udp在计算机之间无法正常工作

时间:2015-06-08 20:47:00

标签: lua udp ethernet

我的udp代码在从计算机1发送到计算机2时不起作用,但是它可以从comp 2发送到comp 1.我在同一台计算机上试过两次,按预期正常工作。计算机通过局域网上的以太网连接,Windows启动计算机,让我登录和读/写计算机。 服务器:

local socket = require "socket"

-- begin
local udp = socket.udp()
udp:settimeout(1)
udp:setsockname('*', 12345)
local data, msg_or_ip, port_or_nil
local cmd, parms
local running = true
print "Beginning server loop."
while running do
    data, msg_or_ip, port_or_nil = udp:receivefrom()
    if data then
        print(data,msg_or_ip,port_or_nil)
        udp:sendto(data,msg_or_ip,port_or_nil)
    elseif msg_or_ip ~= 'timeout' then
        print("Unknown network error: "..tostring(msg))
    end

    socket.sleep(0.01)
end

客户端:

local socket = require "socket"
local address, port = "192.168.137.161", 12345
udp = socket.udp()
udp:settimeout(1)
while true do
    udp:setpeername(address, port)
    udp:send(io.read())
    udp:close()
    --udp:setsockname("*",12345)
    data, msg_or_ip, port_or_nil = udp:receivefrom()
    print(data, msg_or_ip, port_or_nil)
    udp:close()
end

客户端发送消息,服务器选择它,并且应该立即回复它,但客户端吐出     nil refused nil,标签位于nil和拒绝之间。 我认为这主要是从服务器计算机发送到客户端计算机,因为它应该只回显数据。

我可以看到这个问题很难回答,因为不是每个人都可以同时完全访问两台计算机。对于记录,lua 5.1用于两者,socket也是v2.0.2。

1 个答案:

答案 0 :(得分:0)

对于所有想知道的人,这是因为我关闭了套接字。没什么大不了的。