PacketPeerUDP¶
继承¶
PacketPeer
简要描述¶
UDP数据包对等体。
描述¶
UDP数据包对等体。可用于发送原始UDP数据包以及Variant。
方法¶
| 返回值类型 | 方法名称 |
|---|---|
| void | close() |
| String | get_packet_ip() const |
| int | get_packet_port() const |
| bool | is_listening() const |
| int | join_multicast_group(multicast_address: String, interface_name: String) |
| int | leave_multicast_group(multicast_address: String, interface_name: String) |
| int | listen(port: int, bind_address: String = "*", recv_buf_size: int = 65536) |
| void | set_broadcast_enabled(enabled: bool) |
| int | set_dest_address(host: String, port: int) |
| int | wait() |
方法说明¶
- close close()
关闭PacketPeerUDP当前正在监听的UDP套接字。
- get_packet_ip get_packet_ip() const
返回发送最后一个数据包的远程对等方的IP(已通过PacketPeer.get_packet或PacketPeer.get_var接收到)。
- get_packet_port get_packet_port() const
返回发送最后一个数据包的远程对等方的端口(已通过PacketPeer.get_packet或PacketPeer.get_var接收到)。
- is_listening is_listening() const
返回此PacketPeerUDP是否正在侦听。
- join_multicast_group join_multicast_group(multicast_address: String, interface_name: String)
使用由interface_name标识的接口加入由multicast_address指定的组播组。
您可以通过多个接口加入同一组播组。
注意:某些Android设备可能需要CHANGE_WIFI_MULTICAST_STATE权限,组播才能工作。
- leave_multicast_group leave_multicast_group(multicast_address: String, interface_name: String)
从multicast_address指定的多播组中删除由interface_name标识的接口。
- listen listen(port: int, bind_address: String = "*", recv_buf_size: int = 65536)
使此PacketPeerUDP侦听绑定到bind_address的port,缓冲区大小为recv_buf_size。
如果bind_address设置为“ *”(默认值),则对等方将侦听所有可用地址(IPv4和IPv6)。
如果bind_address设置为“ 0.0.0.0”(对于IPv4)或"::" (对于 IPv6),则对等方将侦听与该IP类型匹配的所有可用地址
如果bind_address设置为任何有效地址(例如"192.168.1.101", "::1"等),对等方将仅在具有该地址的接口上侦听(如果不存在具有给定地址的接口,则失败)。
- set_broadcast_enabled set_broadcast_enabled(enabled: bool)
启用或禁用广播数据包的发送(例如set_dest_address("255.255.255.255", 4343)。默认情况下,此选项处于禁用状态。
注意:某些Android设备可能需要CHANGE_WIFI_MULTICAST_STATE权限,并且也要启用此选项才能接收广播数据包。
- set_dest_address set_dest_address(host: String, port: int)
设置发送数据包和变量的目标地址和端口。
注意:必须先启用set_broadcast_enabled,然后再将数据包发送到广播地址(例如255.255.255.255)。
- wait wait()
等待数据包到达侦听端口。参见listen。