_Socket

套接字类。 全部展开

属性展开

  • + withHeader : bool

    网络数据的头部格式,默认为true,表示数据头长度字段中的长度包含数据头的大小。

    示例

        socket.withHeader = true

只读属性展开

  • + localAddr : string

    本地ip地址。

    示例

        print(socket.localAddr)
  • + remoteAddr : string

    远程ip地址。

    示例

        print(socket.remoteAddr)

构造方法展开

  • + function _Socket() : _Socket

    构造一个套接字。

    • 返回
    • 新构造的套接字。
      • 示例
    •  socket = _Socket.new()
  • + function _Socket(socket : _Socket) : _Socket

    构造套接字的一个新的引用。

    • 参数
    • socket : 已有的套接字
    • 返回
    • 新的套接字引用,所有属性和源矩形相同。
      • 示例
    •  socket = _Socket.new(srcsocket)

公共方法展开

  • + function close()

    关闭socket连接。

    示例

        socket:close()
  • + function connect(host1 : string[, host2 : string, ...])

    建立socket连接。

    • 参数
    • host : ip地址和端口号,格式如“1.1.1.1:1234”。
    • 说明
    • 可以在一次调用中尝试多个地址。
      • 示例
    •  socket:connect('0.0.0.0:1234')
  • + function listen(p : string)

    监听某个ip地址的某个端口。

    • 参数
    • p : 监听套接字使用的协议、ip地址和端口。格式 : tcp 或 udp://ip 或 0.0.0.0 或 localhost: 端口。
      • 示例
    •  socket:listen('tcp://0.0.0.0:1234')
  • + function onAccept(callback : function)

    设置接受连接的回调函数。

    • 参数
    • callback : 当有连接请求时调用的回调函数,类型为function(socket : _Socket)
  • + function onClose(callback : function)

    设置正常断开连接的回调函数。

    • 参数
    • callback为回调函数,类型为function(socket : _Socket)。
    • 说明
    • 回调函数的参数是正在关闭的套接字。
    • 如果该参数为空,则在回调函数中设置了_from变量,表示正在关闭的套接字。
    • 如果套接字是服务器端的套接字而且不是监听套接字,并且回调函数中的参数不为空,
    • 则在回调函数中设置了_from变量,_from的类型是_Socket为监听套接字。
      • 示例
    •  local socket = _Socket.new()
      local function close()
      print(‘connect close’)
      end
      socket:onClose(close)
      socket:connect(‘255.255.255.255:8080’)
      socket:close()
  • + function onConnect(callback : function)

    设置连接成功的回调函数。

    • 参数
    • callback : 响应连接请求时的回调函数,类型为function()
    • 说明
    • 在回调函数中设置了_from变量,_from的类型是_Socket,是该连接的套接字。
      • 示例
    •  local socket = _Socket.new()
      local function connect()
      print('connected')
      end
      socket:onConnect(connect)
      socket:connect('255.255.255.255:8080')
      socket:close()
  • + function onFail(callback : function)

    设置非正常断开连接或者连接失败的回调函数。

    • 参数
    • callback为回调函数,类型为function(errcode : uint)。
    • 说明
    • 在回调函数中设置了_from变量,_from的类型是_Socket,是该连接的套接字。
      • 示例
    •  local socket = _Socket.new()
      local function fail()
      print('failed to connect')
      end
      socket:onFail(fail)
      socket:connect('255.255.255.255:8080')
      socket:close()
  • + function onReceive(callback : function)

    设置接收到数据的回调函数。

    • 参数
    • callback为回调函数。
    • 说明
    • 如果套接字是客户端套接字,则回调函数的类型为function(data : string)。
    • 并且在回调函数中设置了_from变量,_from的类型是_Socket,是该连接的套接字。
    • 如果是服务器端的套接字,则回调函数的类型为function(socket : _Socket, data : string)。
    • 回调函数的参数socket是该连接的套接字。
      • 示例
    •  local socket = _Socket.new()
      local function receive(a)
      print('receive data')
      end
      socket:onReceive(receive)
      socket:connect('255.255.255.255:8080')
      socket:close()
  • + function send(data : string)

    发送数据。

    • 参数
    • data为发送的数据,以string的类型传入。
      • 示例
    •  socket:send('network data')

代码示例

    local socket = _Socket.new()

    print('the local address is' .. socket.localAddr)
    print('the remote address is' .. socket.remoteAddr)

    local function connect()
    print('connected')
    end

    local function fail()
    print('failed to connect')
    end

    local function close()
    print('connect close')
    end

    local function receive(a)
    print('receive data')
    end

    socket:onConnect(connect)
    socket:onFail(fail)
    socket:onReceive(receive)
    socket:onClose(close)

    socket:connect('255.255.255.255:8080')
    socket:connect('127.0.0.1:8080')

    print('the local address is' .. socket.localAddr)
    print('the remote address is' .. socket.remoteAddr)

    socket:send('string')

    socket:close()
问题反馈(登录才可以发表哦!)