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 ( )

Error

connect_to_host ( String host, int port )

String

get_packet_ip ( ) const

int

get_packet_port ( ) const

bool

is_connected_to_host ( ) const

bool

is_listening ( ) const

Error

join_multicast_group ( String multicast_address, String interface_name )

Error

leave_multicast_group ( String multicast_address, String interface_name )

Error

listen ( int port, String bind_address="*", int recv_buf_size=65536 )

void

set_broadcast_enabled ( bool enabled )

Error

set_dest_address ( String host, int port )

Error

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).


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