PacketPeer
Hereda: RefCounted < Object
Heredado por: ENetPacketPeer, MultiplayerPeer, PacketPeerDTLS, PacketPeerExtension, PacketPeerStream, PacketPeerUDP, WebRTCDataChannel, WebSocketPeer
Abstracción y clase base para protocolos basados en paquetes.
Descripción
PacketPeer es una abstracción y clase base para protocolos basados en paquetes (como UDP). Proporciona una API para enviar y recibir paquetes tanto como datos en bruto o variables. Esto facilita la transferencia de datos a través de un protocolo, sin tener que codificar los datos como bytes de bajo nivel o tener que preocuparse por el ordenamiento de la red.
Nota: Al exportar a Android, asegúrate de habilitar el permiso INTERNET en el preajuste de exportación de Android antes de exportar el proyecto o usar la implementación con un clic. De lo contrario, Android bloqueará cualquier tipo de comunicación de red.
Propiedades
|
Métodos
get_available_packet_count() const |
|
get_packet_error() const |
|
put_packet(buffer: PackedByteArray) |
|
Descripciones de Propiedades
int encode_buffer_max_size = 8388608 🔗
Tamaño máximo del búfer permitido al codificar Variants. Aumenta este valor para soportar asignaciones de memoria más pesadas.
El método put_var() asigna memoria en la pila, y el búfer utilizado crecerá automáticamente hasta la potencia de dos más cercana para igualar el tamaño de la Variant. Si la Variant es más grande que encode_buffer_max_size, el método devolverá un error con @GlobalScope.ERR_OUT_OF_MEMORY.
Descripciones de Métodos
int get_available_packet_count() const 🔗
Devuelve el número de paquetes actualmente disponibles en el ring-buffer.
PackedByteArray get_packet() 🔗
Recibe un paquete crudo.
Error get_packet_error() const 🔗
Devuelve el estado de error del último paquete recibido (a través de get_packet() y get_var()).
Variant get_var(allow_objects: bool = false) 🔗
Obtiene una Variant. Si allow_objects es true, se permite la decodificación de objetos.
Internamente, esto usa el mismo mecanismo de decodificación que el método @GlobalScope.bytes_to_var().
Advertencia: Los objetos deserializados pueden contener código que se ejecuta. No utilices esta opción si el objeto serializado proviene de fuentes no fiables para evitar posibles amenazas de seguridad, como la ejecución remota de código.
Error put_packet(buffer: PackedByteArray) 🔗
Envía un paquete crudo.
Error put_var(var: Variant, full_objects: bool = false) 🔗
Envía una Variant como un paquete. Si full_objects es true, se permite la codificación de objetos (y esto puede incluir código).
Internamente, utiliza el mismo mecanismo de codificación que el método @GlobalScope.var_to_bytes().