2015-06-08 4 views
1

мой код udp не работает при отправке с компьютера 1 на компьютер 2, но он работает с отправкой с comp 2 на comp 1. Я пробовал оба на одном компьютере, работает нормально, как ожидалось. Компьютеры подключаются через ethernet на LAN, а окна поднимают компьютеры и позволяют мне входить в систему и читать/писать на/с компьютеров. Сервер:lua udp не работает между компьютерами

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, защелкой между нолю и отказался. Я думаю, что это в основном просто что-то с отправкой с серверного компьютера на клиентский компьютер, так как он должен просто эхо-данные.

Я мог видеть, как эта проблема будет трудно ответить, из-за того, что не у всех есть полный доступ к двум компьютерам одновременно. Для записи lua 5.1 используется как для обоих, так и для сокета v2.0.2.

+0

Проверьте настройки брандмауэра на Windows –

+0

извините за поздний ответ, я открыл все порты для udp & tcp как для входящих, так и исходящих, а затем мой эквивалентный код в python работал, когда я открыл свой набор портов, поэтому я я должен попробовать это – Neywiny

+0

Да, когда я переключил порты на используемые python и открыл порты 12345 для UDP/TCP на входящем и исходящем, он ничего не сказал. сервер ничего не понял, и клиент подумал, что все в порядке – Neywiny

ответ

0

для всех, кто задавался вопросом, это было потому, что я закрыл гнездо. ничего серьезного.

Смежные вопросы