PacketPeerUDP¶
Inherits: PacketPeer < Reference < Object
Paquete de pares UDP.
Descripción¶
Paquete de pares UDP. Puede ser usado para enviar paquetes UDP sin procesar así como Variants.
Métodos¶
void |
close ( ) |
connect_to_host ( String host, int port ) |
|
get_packet_ip ( ) const |
|
get_packet_port ( ) const |
|
is_connected_to_host ( ) const |
|
is_listening ( ) const |
|
join_multicast_group ( String multicast_address, String interface_name ) |
|
leave_multicast_group ( String multicast_address, String interface_name ) |
|
listen ( int port, String bind_address="*", int recv_buf_size=65536 ) |
|
void |
set_broadcast_enabled ( bool enabled ) |
set_dest_address ( String host, int port ) |
|
wait ( ) |
Descripciones de Métodos¶
void close ( )
Cierra el socket UDP que el PacketPeerUDP
está escuchando actualmente.
Calling this method connects this UDP peer to the given host
/port
pair. UDP is in reality connectionless, so this option only means that incoming packets from different addresses are automatically discarded, and that outgoing packets are always sent to the connected address (future calls to set_dest_address are not allowed). This method does not send any data to the remote peer, to do that, use PacketPeer.put_var or PacketPeer.put_packet as usual. See also UDPServer.
Note: Connecting to the remote peer does not help to protect from malicious attacks like IP spoofing, etc. Think about using an encryption technique like SSL or DTLS if you feel like your application is transferring sensitive information.
String get_packet_ip ( ) const
Devuelve la IP del par remoto que envió el último paquete (que fue recibido con PacketPeer.get_packet o PacketPeer.get_var).
int get_packet_port ( ) const
Devuelve el puerto del par remoto que envió el último paquete (que fue recibido con PacketPeer.get_packet o PacketPeer.get_var).
bool is_connected_to_host ( ) const
Devuelve true
si el enchufe UDP está abierto y se ha conectado a una dirección remota. Ver connect_to_host.
bool is_listening ( ) const
Devuelve si este PacketPeerUDP
está escuchando.
Joins the multicast group specified by multicast_address
using the interface identified by interface_name
.
You can join the same multicast group with multiple interfaces. Use IP.get_local_interfaces to know which are available.
Note: Some Android devices might require the CHANGE_WIFI_MULTICAST_STATE
permission for multicast to work.
Elimina la interfaz identificada por interface_name
del grupo de multidifusión especificado por multicast_address
.
Hace que este PacketPeerUDP
escuche en el port
vinculándose a bind_address
con un tamaño de búfer recv_buf_size
.
Si bind_address
se establece en "*"
(por defecto), el par escuchará en todas las direcciones disponibles (tanto IPv4 como IPv6).
Si bind_address
está configurado como "0.0.0.0"
(para IPv4) o "::"
(para IPv6), el par escuchará en todas las direcciones disponibles que coincidan con ese tipo de IP.
Si bind_address
se establece en cualquier dirección válida (por ejemplo, "192.168.1.101"
, "::1"
, etc.), el par sólo escuchará en la interfaz con esas direcciones (o fallará si no existe una interfaz con la dirección dada).
void set_broadcast_enabled ( bool enabled )
Enable or disable sending of broadcast packets (e.g. set_dest_address("255.255.255.255", 4343)
. This option is disabled by default.
Note: Some Android devices might require the CHANGE_WIFI_MULTICAST_STATE
permission and this option to be enabled to receive broadcast packets too.
Sets the destination address and port for sending packets and variables. A hostname will be resolved using DNS if needed.
Note: set_broadcast_enabled must be enabled before sending packets to a broadcast address (e.g. 255.255.255.255
).
Error wait ( )
Waits for a packet to arrive on the listening port. See listen.
Note: wait can't be interrupted once it has been called. This can be worked around by allowing the other party to send a specific "death pill" packet like this:
# Server
socket.set_dest_address("127.0.0.1", 789)
socket.put_packet("Time to stop".to_ascii())
# Client
while socket.wait() == OK:
var data = socket.get_packet().get_string_from_ascii()
if data == "Time to stop":
return