Lua tcp

Lua
  1. 1. TCP
    1. 1.1. socket.tcp()
    2. 1.2. server:accept()
    3. 1.3. master:bind(address, port)
    4. 1.4. master:close()
    5. 1.5. client:close()
    6. 1.6. server:close()
    7. 1.7. client:receive([pattern [, prefix]])
    8. 1.8. client:send(data [, i [, j]])

TCP

socket.tcp()

使用bind()-listen()方法后,将master TCP对象转化为一个server 对象;使用connect()方法后,将master TCP对象转化为一个client对象。

此外,master TCP对象仅仅提供了断开连接的close()方法。

@return 成功时,返回一个新的master TCP对象;异常时,返回nil,并显示错误信息。

server:accept()

等待远程server的连接,并返回一个代表这个连接的client对象。

@return 远程server连接成功时,返回一个client对象;timeout或者其他连接失败时,返回nil,并显示错误信息。

master:bind(address, port)

address可以是IP或者主机名,port必需是0~64k。如果address是“*”,系统会用INADDR_ANY常数注册地址。如果port是0,则自动分配端口。

@return 成功返回1,失败返回nil,打印错误信息。

master:close()

client:close()

server:close()

关闭该对象使用的socket连接,并对其他应用开放被这个对象注册的本地地址。

client:receive([pattern [, prefix]])

根据读取模式(pattern)从client对象中读取数据。模式遵循LUA的file I/O格式。

  • ‘*a’:读取,直到连接断开。不执行EOF;
  • ‘*l’:从socket中读取一行文本,这行文本以LF字符(Line feed 换行键,\n)为终止。返回的文本不包括CR(Carriage return 回车键,enter)和LF;
  • number:从socket中读取number个byte。

client:send(data [, i [, j]])

通过client对象发送数据。i,j的工作方式很像string.sub。Lua方法允许发送数据的字串。