мой код 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.
Проверьте настройки брандмауэра на Windows –
извините за поздний ответ, я открыл все порты для udp & tcp как для входящих, так и исходящих, а затем мой эквивалентный код в python работал, когда я открыл свой набор портов, поэтому я я должен попробовать это – Neywiny
Да, когда я переключил порты на используемые python и открыл порты 12345 для UDP/TCP на входящем и исходящем, он ничего не сказал. сервер ничего не понял, и клиент подумал, что все в порядке – Neywiny