跳到主要内容

PacketPeerUDP

继承

PacketPeer

简要描述

UDP数据包对等体。

描述

UDP数据包对等体。可用于发送原始UDP数据包以及Variant

方法

返回值类型方法名称
voidclose()
Stringget_packet_ip() const
intget_packet_port() const
boolis_listening() const
intjoin_multicast_group(multicast_address: String, interface_name: String)
intleave_multicast_group(multicast_address: String, interface_name: String)
intlisten(port: int, bind_address: String = "*", recv_buf_size: int = 65536)
voidset_broadcast_enabled(enabled: bool)
intset_dest_address(host: String, port: int)
intwait()

方法说明

  • close close()

关闭PacketPeerUDP当前正在监听的UDP套接字。


  • get_packet_ip get_packet_ip() const

返回发送最后一个数据包的远程对等方的IP(已通过PacketPeer.get_packetPacketPeer.get_var接收到)。


  • get_packet_port get_packet_port() const

返回发送最后一个数据包的远程对等方的端口(已通过PacketPeer.get_packetPacketPeer.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_addressport,缓冲区大小为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