createUDPSocket
该 API 使用方法为 UDPSocket wx.createUDPSocket()
功能说明:创建一个 UDP Socket 实例。
返回值:UDPSocket,一个 UDP Socket 实例。
UDPSocket
说明:
一个 UDP Socket 实例,默认使用 IPv4 协议。
.bind
该 方法 使用方式为 number UDPSocket.bind(number port)
功能说明:绑定一个系统随机分配的可用端口,或绑定一个指定的端口号。
参数及说明:number port,指定要绑定的端口号,不传则返回系统随机分配的可用端口。
返回值:number,绑定成功的端口号。
示例代码
const udp = wx.createUDPSocket()const port = udp.bind()
.close
该 方法 使用方式为 UDPSocket.close()
功能说明:关闭 UDP Socket 实例,相当于销毁。在关闭之后,UDP Socket 实例不能再发送消息,每次调用 UDPSocket.send 将会触发错误事件,并且 message 事件回调函数也不会再也执行。在 UDPSocket 实例被创建后将被 Native 强引用,保证其不被 GC。在 UDPSocket.close 后将解除对其的强引用,让 UDPSocket 实例遵从 GC。
.connect
该 方法 使用方式为 UDPSocket.connect(Object object)
功能描述:预先连接到指定的 IP 和 port,需要配合 write 方法一起使用。
参数及说明:Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
address | string | - | 是 | 要发消息的地址 |
port | number | - | 是 | 要发送消息的端口号 |
.onClose
该 方法 使用方式为 UDPSocket.onClose(function listener)
功能说明:监听关闭事件。
参数及说明:function listener,关闭事件的监听函数。
.offClose
该 方法 使用方式为 UDPSocket.offClose(function listener)
功能说明:移除关闭事件的监听函数。
参数及说明:function listener,onClose 传入的监听函数,不传此参数则移除所有监听函数。
示例代码
const listener = function (res) { console.log(res) }UDPSocket.onClose(listener)UDPSocket.offClose(listener) // 需传入与监听时同一个的函数对象
.onError
该 方法 使用方式为 UDPSocket.onError(function listener)
功能说明:监听错误事件。
参数及说明:Object res 参数,function listener,错误事件的监听函数。
属性 | 类型 | 说明 |
errMsg | string | 错误信息 |
.offError
该 方法 使用方式为 UDPSocket.offError(function listener)
功能说明:移除错误事件的监听函数。
参数及说明:function listener,onError 传入的监听函数,不传此参数则移除所有监听函数。
示例代码
const listener = function (res) { console.log(res) }UDPSocket.onError(listener)UDPSocket.offError(listener) // 需传入与监听时同一个的函数对象
.onListening
该 方法 使用方式为 UDPSocket.onListening(function listener)
功能说明:监听开始监听数据包消息的事件。
参数及说明:function listener,开始监听数据包消息的事件的监听函数。
.offListening
该 方法 使用方式为 UDPSocket.offListening(function listener)
功能说明:移除开始监听数据包消息的事件的监听函数。
参数及说明:function listener,onListening 传入的监听函数,不传此参数则移除所有监听函数。
示例代码
const listener = function (res) { console.log(res) }UDPSocket.onListening(listener)UDPSocket.offListening(listener) // 需传入与监听时同一个的函数对象
.onMessage
该 方法 使用方式为 UDPSocket.onMessage(function listener)
功能说明:监听收到消息的事件。
参数及说明:Object res 参数,function listener,收到消息的事件的监听函数。
属性 | 类型 | 说明 |
message | ArrayBuffer | 收到的消息。消息长度需要小于4096 |
remoteInfo | Object | 发送端地址信息 |
localInfo | Object | 接收端地址信息,2.18.0起支持 |
remoteInfo 结构属性
结构属性 | 类型 | 说明 |
address | string | 发送消息的 socket 的地址 |
family | string | 使用的协议族,为 IPv4 或者 IPv6 |
port | number | 端口号 |
size | number | message 的大小,单位:字节 |
localInfo 结构属性
结构属性 | 类型 | 说明 |
address | string | 接收消息的 socket 的地址 |
family | string | 使用的协议族,为 IPv4 或者 IPv6 |
port | number | 端口号 |
.offMessage
该 方法 使用方式为 UDPSocket.offMessage(function listener)
功能说明:移除收到消息的事件的监听函数。
参数及说明:function listener,onMessage 传入的监听函数,不传此参数则移除所有监听函数。
示例代码
const listener = function (res) { console.log(res) }UDPSocket.onMessage(listener)UDPSocket.offMessage(listener) // 需传入与监听时同一个的函数对象
.send
该 方法 使用方式为 UDPSocket.send(Object object)
功能说明:向指定的 IP 和 port 发送消息。
参数及说明:Object object。
属性 | 类型 | 默认值 | 必填 | 说明 |
address | string | - | 是 | 要发消息的地址。在基础库2.9.3及以下版本必须是和本机同网段的 IP 地址,或安全域名列表内的域名地址;基础库2.9.3以上版本可以是任意 IP 和域名 |
port | number | - | 是 | 要发送消息的端口号 |
message | string/ArrayBuffer | - | 是 | 要发送的数据 |
offset | number | 0 | 否 | 发送数据的偏移量,仅当 message 为 ArrayBuffer 类型时有效 |
length | number | message.byteLength | 否 | 发送数据的长度,仅当 message 为 ArrayBuffer 类型时有效 |
示例代码
const udp = wx.createUDPSocket()udp.bind()udp.send({address: '192.168.193.2',port: 8848,message: 'hello, how are you'})
.setTTL
该 方法 使用方式为 UDPSocket.setTTL(number ttl)
功能说明:设置 IP_TTL 套接字选项,用于设置一个 IP 数据包传输时允许的最大跳步数。
参数及说明:number ttl,ttl 参数可以是 0 到 255 之间。
示例代码
const udp = wx.createUDPSocket()udp.onListening(function () {udp.setTTL(64)})udp.bind()
.write
该 方法 使用方式为 UDPSocket.write()
功能说明:用法与 send 方法相同,如果没有预先调用 connect 则与 send 无差异。
说明:
即使调用了 connect 也需要在本接口填入地址和端口参数。