diff options
Diffstat (limited to 'xmake')
| -rw-r--r-- | xmake/core/base/socket.lua | 26 | ||||
| -rw-r--r-- | xmake/core/sandbox/modules/import/core/base/socket.lua | 24 |
2 files changed, 25 insertions, 25 deletions
diff --git a/xmake/core/base/socket.lua b/xmake/core/base/socket.lua index 97a04bb8b..0ff3ab8b0 100644 --- a/xmake/core/base/socket.lua +++ b/xmake/core/base/socket.lua @@ -19,22 +19,31 @@ -- -- define module -local io = io or {} local socket = socket or {} local _instance = _instance or {} -- load modules +local io = require("base/io") local table = require("base/table") local string = require("base/string") +-- the socket types +socket.TCP = 1 +socket.UDP = 2 +socket.ICMP = 3 + +-- the socket families +socket.IPV4 = 1 +socket.IPV6 = 2 + -- new a socket function _instance.new(socktype, family, sock) - local socket = table.inherit(_instance) - socket._SOCK = sock - socket._TYPE = socktype or "tcp" - socket._FAMILY = family or "ipv4" - setmetatable(socket, _instance) - return socket + local instance = table.inherit(_instance) + instance._SOCK = sock + instance._TYPE = socktype or socket.TCP + instance._FAMILY = family or socket.IPV4 + setmetatable(instance, _instance) + return instance end -- get socket type @@ -109,7 +118,8 @@ end -- tostring(socket) function _instance:__tostring() local rawfd = self:rawfd() or "closed" - return string.format("<socket: %s%s/%s>", self:type(), self:family() == "ipv6" and "6" or "4", rawfd) + local types = {"tcp", "udp", "icmp"} + return string.format("<socket: %s%s/%s>", types[self:type()], self:family() == socket.IPV6 and "6" or "4", rawfd) end -- gc(socket) diff --git a/xmake/core/sandbox/modules/import/core/base/socket.lua b/xmake/core/sandbox/modules/import/core/base/socket.lua index e13d55fca..fa9114699 100644 --- a/xmake/core/sandbox/modules/import/core/base/socket.lua +++ b/xmake/core/sandbox/modules/import/core/base/socket.lua @@ -77,29 +77,19 @@ function sandbox_core_base_socket.open(socktype, family) return sock end --- open tcp/ipv4 socket -function sandbox_core_base_socket.open_tcp4() - return sandbox_core_base_socket.open("tcp", "ipv4") -end - --- open tcp/ipv6 socket -function sandbox_core_base_socket.open_tcp6() - return sandbox_core_base_socket.open("tcp", "ipv6") -end - -- open udp/ipv4 socket -function sandbox_core_base_socket.open_udp4() - return sandbox_core_base_socket.open("udp", "ipv4") +function sandbox_core_base_socket.udp4() + return sandbox_core_base_socket.open(socket.UDP, socket.IPV4) end -- open udp/ipv6 socket -function sandbox_core_base_socket.open_udp6() - return sandbox_core_base_socket.open("udp", "ipv6") +function sandbox_core_base_socket.udp6() + return sandbox_core_base_socket.open(socket.UDP, socket.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 sock = sandbox_core_base_socket.open(socket.TCP, socket.IPV4) local ok = 0 repeat ok = sock:connect(addr, port) @@ -114,8 +104,8 @@ function sandbox_core_base_socket.connect4(addr, port, timeout) end -- open and connect tcp/ipv6 socket -function sandbox_core_base_socket.connect6(addr, port) - local sock = sandbox_core_base_socket.open_tcp6() +function sandbox_core_base_socket.connect6(addr, port, timeout) + local sock = sandbox_core_base_socket.open(socket.TCP, socket.IPV6) local ok = 0 repeat ok = sock:connect(addr, port) |
