Lua сокеты: не получается подключить и отправить данные
Это мой первый раз возиться с розетками в Lua. Независимо от того, что я пытаюсь, я не могу заставить это соединиться. Что-то я сделал не так или не сделал?
--will store room sockets
Rsock = {}
--will store pm sockets
Psock = {}
--will sore the userlist
userlist = {}
--will store our banned people list
banlist = {}
--threads table only if needed
threads = {}
sock = require "socket";
http = require "socket.http";
local iterate = 0
function getAuth(user, password)
url = "http://old.yuribot.com/server?inp=get_auth@"
.. user .. "-" .. password
return http.request(url)
end
function getServer(group)
url = "http://old.yuribot.com/server?inp=group@".. group
return http.request(url)
end
function room_connect(room)
sock = sock.tcp();
host = getServer(room);
port = 443;
sock.connect(host, 443);
Rsock[room] = sock;
sock:send("bauth:" .. room .. ":567765443" .. ":introbot:9911324" .. "\x00");
end
room_connect("shirayuri");
--print(getAuth("introbot", "9911324"));
--print(Rsock['shirayuri'])
PS: сайт есть shirayuri.chatango.com
2 ответа
Какую ошибку вы получаете? Я думаю, что проблема с линией -
sock:connect(host, 443);
Так должно быть
sock.connect(host, 443);
Итак, замена: с. должно работать, если вы получаете ошибку
bad argument #2 to 'bind'
Если есть какая-либо другая ошибка, опубликуйте ее здесь.
см. http://www.lua.org/pil/16.html что делает двоеточие.
Это работает для меня:
local room = 'shirayuri'
local http = require("socket.http")
local body, code = http.request("http://old.yuribot.com/server?inp=group@"..room)
if not body then error(code) end
print(body)
local socket = require("socket")
local conn = socket.tcp()
conn:connect(body, 443)
local res = conn:send("bauth:" .. room .. ":567765443" .. ":introbot:9911324")
print(res)
Принты "s18.chatango.com" и "42".