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".

Другие вопросы по тегам