Module socket
模块功能:数据链路激活、SOCKET管理(创建、连接、数据收发、状态维护)
Info:
- Copyright: openLuat
- Release: 2017.9.25
- License: MIT
- Author: openLuat
Functions
tcp ([ssl=nil][, cert=nil]) | 创建基于TCP的socket对象 |
udp () | 创建基于UDP的socket对象 |
mt.__index:connect (address, port) | 连接服务器 |
mt.__index:send (data) | 发送数据 |
mt.__index:recv ([timeout=0]) | 接收数据 |
mt.__index:close () | 销毁一个socket |
setTcpResendPara ([retryCnt=4][, retryMaxTimeout=16]) | 设置TCP层自动重传的参数 |
Fields
isReady | SOCKET 是否有可用 |
Functions
- tcp ([ssl=nil][, cert=nil])
-
创建基于TCP的socket对象
Parameters:
- ssl
bool
[此参数可选,默认值为: nil]
是否为ssl连接,true表示是,其余表示否
- cert
table
[此参数可选,默认值为: nil]
ssl连接需要的证书配置,只有ssl参数为true时,才参数才有意义,cert格式如下: { caCert = "ca.crt", --CA证书文件(Base64编码 X.509格式),如果存在此参数,则表示客户端会对服务器的证书进行校验;不存在则不校验 clientCert = "client.crt", --客户端证书文件(Base64编码 X.509格式),服务器对客户端的证书进行校验时会用到此参数 clientKey = "client.key", --客户端私钥文件(Base64编码 X.509格式) clientPassword = "123456", --客户端证书文件密码[可选] }
Returns:
-
client,创建成功返回socket客户端对象;创建失败返回nil
Usage:
c = socket.tcp() c = socket.tcp(true) c = socket.tcp(true, {caCert="ca.crt"}) c = socket.tcp(true, {caCert="ca.crt", clientCert="client.crt", clientKey="client.key"}) c = socket.tcp(true, {caCert="ca.crt", clientCert="client.crt", clientKey="client.key", clientPassword="123456"})
- ssl
bool
[此参数可选,默认值为: nil]
- udp ()
-
创建基于UDP的socket对象
Returns:
-
client,创建成功返回socket客户端对象;创建失败返回nil
Usage:
c = socket.udp()
-
- mt.__index:connect (address, port)
-
连接服务器
Parameters:
- address
string
服务器地址,支持ip和域名
- port
string或者number类型,服务器端口
Returns:
-
bool result true - 成功,false - 失败
Usage:
c = socket.tcp(); c:connect();
- address
string
- mt.__index:send (data)
-
发送数据
Parameters:
- data
string
数据
Returns:
-
result true - 成功,false - 失败
Usage:
c = socket.tcp(); c:connect(); c:send("12345678");
- data
string
- mt.__index:recv ([timeout=0])
-
接收数据
Parameters:
- timeout
number
[此参数可选,默认值为: 0]
可选参数,接收超时时间
Returns:
-
result true - 成功,false - 失败
-
data 如果成功的话,返回接收到的数据,超时时返回错误为"timeout"
Usage:
c = socket.tcp(); c:connect(); result, data = c:recv()
- timeout
number
[此参数可选,默认值为: 0]
- mt.__index:close ()
-
销毁一个socket
Returns:
-
nil
Usage:
c = socket.tcp(); c:connect(); c:send("123"); c:close()
-
- setTcpResendPara ([retryCnt=4][, retryMaxTimeout=16])
-
设置TCP层自动重传的参数
Parameters:
- retryCnt
number
[此参数可选,默认值为: 4]
重传次数;取值范围0到12
- retryMaxTimeout
number
[此参数可选,默认值为: 16]
限制每次重传允许的最大超时时间(单位秒),取值范围1到16
Returns:
-
nil
Usage:
setTcpResendPara(3,8) setTcpResendPara(4,16)
- retryCnt
number
[此参数可选,默认值为: 4]