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.
Checking the stable version of the documentation...
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à
|
Metodi
get_available_packet_count() const |
|
get_packet_error() const |
|
put_packet(buffer: PackedByteArray) |
|
Descrizioni delle proprietà
int encode_buffer_max_size = 8388608 🔗
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().