From f2a2f516c29eeb5a3d9475903dd3b4ed8c3df45d Mon Sep 17 00:00:00 2001 From: ruki Date: Sun, 13 Oct 2019 22:50:39 +0800 Subject: add socket.connect --- .../sandbox/modules/import/core/base/socket.lua | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/xmake/core/sandbox/modules/import/core/base/socket.lua b/xmake/core/sandbox/modules/import/core/base/socket.lua index 3522d34d5..e13d55fca 100644 --- a/xmake/core/sandbox/modules/import/core/base/socket.lua +++ b/xmake/core/sandbox/modules/import/core/base/socket.lua @@ -97,6 +97,38 @@ function sandbox_core_base_socket.open_udp6() return sandbox_core_base_socket.open("udp", "ipv6") end +-- open and connect tcp/ipv4 socket +function sandbox_core_base_socket.connect4(addr, port, timeout) + local sock = sandbox_core_base_socket.open_tcp4() + local ok = 0 + repeat + ok = sock:connect(addr, port) + -- TODO wait + until ok ~= 0 + if ok > 0 then + return sock + else + sock:close() + raise("connect %s:%s failed!", addr, port) + end +end + +-- open and connect tcp/ipv6 socket +function sandbox_core_base_socket.connect6(addr, port) + local sock = sandbox_core_base_socket.open_tcp6() + local ok = 0 + repeat + ok = sock:connect(addr, port) + -- TODO wait + until ok ~= 0 + if ok > 0 then + return sock + else + sock:close() + raise("connect %s:%s failed!", addr, port) + end +end + -- return module return sandbox_core_base_socket -- cgit v1.3.1