LuaSocket 확장 라이브러리
연결 제한 시간 예제
local socket = require("socket")
local sock = socket.tcp()
sock:settimeout(0.2) -- 연결 제한 시간을 초 단위로 설정합니다
if (sock:connect("220.181.57.217", 80)) then
sock:close() -- 연결 종료
sys.alert("能连上")
else
sys.alert("超时了")
end
참고: 위 코드에서는 이 장에서 설명하지 않는 함수인 sys.alert를 사용합니다.
Baidu 홈페이지에 HTTP 요청을 보내는 예제
local socket = require('socket')
local sock = socket.tcp()
local ip = assert(socket.dns.toip('www.baidu.com'), '域名解析失败')
sock:settimeout(10)
assert(sock:connect(ip, 80) == 1, '连接失败或超时')
assert(
sock:send(
'GET / HTTP/1.1\r\n'..
'Host: www.baidu.com\r\n'..
'Accept: */*\r\n'..
'Connection: close\r\n'..
'\r\n'
),
'发送数据超时'
)
local buf = {}
repeat
local chunk, status, partial = sock:receive(4096)
if (chunk) then
buf[#buf + 1] = chunk
else
if (partial) then
buf[#buf + 1] = partial
end
end
until status == "closed"
sock:close()
sys.alert(table.concat(buf))
참고: 위 코드에서는 이 장에서 설명하지 않는 함수인 sys.alert와 table.concat을 사용합니다.