aardio 文档

wsock.udp.asyncClient 库模块帮助文档

udpAsyncClientObject 成员列表 #

udpAsyncClientObject.asyncSelect(event,userMsgId,hwnd) #

检测到由event参数指明的网络事件后,
事件到达向hwnd指定句柄的窗口发送userMsgId消息,
第二次调用此函数可省略句柄以及消息ID

失败返回null,以及错误信息,
成功返回true,以及上次调用此函数指定的event参数

udpAsyncClientObject.bind #

绑定 IP 端口。

udpAsyncClientObject.bind(IP,端口) #

绑定 IP 端口。
如果不指定 IP 则默认获取内网 IP 作为参数。

成功返回 true,
失败返回 null,错误信息,错误代码。

相同的本地 IP 与端口重复绑定会返回 10022(_WSAEINVAL) 错误。

udpAsyncClientObject.close() #

关闭 UDP 客户端。
如果未显式调用此函数,在对象析构时,将会自动调用。

已关闭的套接字不能再使用。
就好比用过的车票不能重复用,什么地方都有规则和限制。

udpAsyncClientObject.connect(IP或域名,端口号) #

连接指定的目标 IP 以及端口号。
省略参数则使用此对象上次使用的目标地址。

udpAsyncClientObject.getLocalIp() #

返回本机 IP,端口

udpAsyncClientObject.getRemoteAddress() #

最后最后发送或接收的 sockaddr_in 结构体

返回对象:sockaddrInObject

udpAsyncClientObject.getRemoteIp() #

返回最后发送或接收的 IP ,端口

udpAsyncClientObject.getopt(_SO) #

获取选项
参数 @1 使用 SO 前缀的常量指定选项,参数 @2 使用结构体指定值
如果不指定参数 @2 ,则获取一个32位整型数值,
可选用参数@3指定设置层次,默认为SOL_SOCKET
成功返回读取的结构体

udpAsyncClientObject.joinGroup(广播组IP地址,网络接口IP) #

加入广播组
参数 @2 可省略

udpAsyncClientObject.leaveGroup(广播组IP地址,网络接口IP) #

退出广播组
参数 @2 可省略

udpAsyncClientObject.recv(最大接收长度) #

接收数据包。
如果参数不指定长度,则使用 bufferSize 指定的长度。
成功返回字符串,
失败返回 null,错误代码

与 recvfrom 方法的区别是此函数不会接收并存储远程客户端的 IP地址与端口。

udpAsyncClientObject.recvfrom(缓冲区长度) #

接收数据并获取远程客户端地址。
如果获取到非空数据则返回 3 个值:数据,IP,端口 。
此函数会更新并存储最后发送与接收的远程客户端地址。

udpAsyncClientObject.reuseAddress(true) #

是否允许端口重用

udpAsyncClientObject.send(数据,长度) #

调用 connect 以后可以使用此函数接收数据包发送数据包

udpAsyncClientObject.sendto(发送数据,IP或域名,端口号) #

发送数据,IP端口号为可选参数,
成功返回 true

udpAsyncClientObject.setBroadcast(true) #

允许广播

udpAsyncClientObject.setInterval(回调函数,延时毫秒数,...) #

udpAsyncClientObject.setInterval(回调函数,延时毫秒数,...setInterval(   
    function(){  
        /*参数 @1 指定执行函数,参数 @2 指定执行间隔,  
可选指定一个或多个回调参数,不指定回调参数则默认为:  
 hwnd,message,timerId,tick,  

如果在定时器中执行了 win.delay 等继续消息循环的代码,  
在定时器退出前不会再触发同一定时器(重入)。  

定时器回调函数无返回值、返回 null 或 true 则继续运行。  
返回 false,0,或用 tonumber 可转换为 0 的值则清除此定时器。  
返回可用 tonumber 转换为非 0 数的值则修改定时器执行间隔(毫秒)*/  
    },1000  
)

udpAsyncClientObject.setMulticastInterface() #

设置组播网卡 IP,不指定参数自动取网卡IP

udpAsyncClientObject.setMulticastLoopback(true) #

是否启用多播回送

udpAsyncClientObject.setMulticastTtl() #

设置组播报文的数据包的TTL

udpAsyncClientObject.setTimeouts(发送超时,接收超时) #

设置超时,以亳秒为单位( 1 秒为 1000 毫秒)

udpAsyncClientObject.setopt(_SO) #

设置选项
参数 @1 使用 SO 前缀的常量指定选项,参数 @2 使用结构体、数值、布尔值都可以
可选用参数@3指定设置层次,默认为SOL_SOCKET
成功返回true

udpAsyncClientObject 事件列表 #

udpAsyncClientObject.onReceive #

udpAsyncClientObject.onReceive = function(err){
    var str = udpServer.recvfrom(1024);/*收到数据*/ 
}

wsock.udp 成员列表 #

wsock.udp.asyncClient #

UDP 异步客户端

wsock.udp.asyncClient() #

创建 UDP 异步客户端。
此对象可传入其他线程(仅共享 UDP 套接字,接收线程调用 close 方法不会关闭套接字)。

返回对象:udpAsyncClientObject

Markdown 格式