Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

PacketPeer

Eredita: RefCounted < Object

Ereditato da: ENetPacketPeer, MultiplayerPeer, PacketPeerDTLS, PacketPeerExtension, PacketPeerStream, PacketPeerUDP, WebRTCDataChannel, WebSocketPeer

Astrazione e classe di base per i protocolli basati su pacchetti.

Descrizione

PacketPeer è un'astrazione e la classe base per i protocolli basati su pacchetti (come UDP). Fornisce un'API per inviare e ricevere pacchetti sia come dati grezzi sia come variabili. Ciò semplifica il trasferimento di dati attraverso un protocollo, senza dover codificare i dati come byte di basso livello o doversi preoccupare dell'ordinamento di rete.

Nota: Quando si esporta su Android, assicurarsi di abilitare l'autorizzazione INTERNET nella preimpostazione d'esportazione Android prima di esportare il progetto o di utilizzare la distribuzione con un clic. Altrimenti, qualsiasi tipo di comunicazione di rete sarà bloccata da Android.

Proprietà

int

encode_buffer_max_size

8388608

Metodi

int

get_available_packet_count() const

PackedByteArray

get_packet()

Error

get_packet_error() const

Variant

get_var(allow_objects: bool = false)

Error

put_packet(buffer: PackedByteArray)

Error

put_var(var: Variant, full_objects: bool = false)


Descrizioni delle proprietà

int encode_buffer_max_size = 8388608 🔗

  • void set_encode_buffer_max_size(value: int)

  • int get_encode_buffer_max_size()

Dimensione massima del buffer consentita durante la codifica di Variant. Aumenta questo valore per supportare allocazioni di memoria più pesanti.

Il metodo put_var() alloca memoria sullo stack e il buffer utilizzato crescerà automaticamente alla potenza di due più vicina per corrispondere alla dimensione di Variant. Se Variant è più grande di encode_buffer_max_size, il metodo genererà un errore con @GlobalScope.ERR_OUT_OF_MEMORY.


Descrizioni dei metodi

int get_available_packet_count() const 🔗

Restituisce il numero di pacchetti attualmente disponibili nel buffer circolare.


PackedByteArray get_packet() 🔗

Ottiene un pacchetto grezzo.


Error get_packet_error() const 🔗

Restituisce lo stato di errore dell'ultimo pacchetto ricevuto (tramite get_packet() e get_var()).


Variant get_var(allow_objects: bool = false) 🔗

Ottiene un valore Variant. Se allow_objects è true, è permesso decodificare gli oggetti.

Internamente, questo utilizza lo stesso meccanismo di decodifica del metodo @GlobalScope.bytes_to_var().

Attenzione: Un oggetto deserializzato può contenere codice che verrà eseguito. Non usare questa opzione se l'oggetto serializzato arriva da fonti sconosciute per evitare eventuali rischi di sicurezza come l'esecuzione di codice remoto.


Error put_packet(buffer: PackedByteArray) 🔗

Invia un pacchetto grezzo.


Error put_var(var: Variant, full_objects: bool = false) 🔗

Invia un valore Variant come pacchetto. Se full_objects è true, è consentito codificare le istanze di oggetti (e può potenzialmente includere codice).

Internamente, questo metodo utilizza lo stesso meccanismo di codifica del metodo @GlobalScope.var_to_bytes().