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.

StreamPeer

Eredita: RefCounted < Object

Ereditato da: StreamPeerBuffer, StreamPeerExtension, StreamPeerGZIP, StreamPeerSocket, StreamPeerTLS

Classe di base astratta per interagire con i flussi.

Descrizione

StreamPeer è una classe base astratta usata principalmente per i protocolli basati sui flussi (come TCP). Fornisce un'API per inviare e ricevere i dati tramite i flussi, come dati grezzi o stringhe.

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à

bool

big_endian

false

Metodi

int

get_8()

int

get_16()

int

get_32()

int

get_64()

int

get_available_bytes() const

Array

get_data(bytes: int)

float

get_double()

float

get_float()

float

get_half()

Array

get_partial_data(bytes: int)

String

get_string(bytes: int = -1)

int

get_u8()

int

get_u16()

int

get_u32()

int

get_u64()

String

get_utf8_string(bytes: int = -1)

Variant

get_var(allow_objects: bool = false)

void

put_8(value: int)

void

put_16(value: int)

void

put_32(value: int)

void

put_64(value: int)

Error

put_data(data: PackedByteArray)

void

put_double(value: float)

void

put_float(value: float)

void

put_half(value: float)

Array

put_partial_data(data: PackedByteArray)

void

put_string(value: String)

void

put_u8(value: int)

void

put_u16(value: int)

void

put_u32(value: int)

void

put_u64(value: int)

void

put_utf8_string(value: String)

void

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


Descrizioni delle proprietà

bool big_endian = false 🔗

  • void set_big_endian(value: bool)

  • bool is_big_endian_enabled()

Se true, questo StreamPeer utilizzerà il formato big-endian per la codifica e la decodifica.


Descrizioni dei metodi

int get_8() 🔗

Ottiene un byte con segno dal flusso.


int get_16() 🔗

Ottiene un valore a 16-bit con segno dal flusso.


int get_32() 🔗

Ottiene un valore a 32-bit con segno dal flusso.


int get_64() 🔗

Ottiene un valore a 64-bit con segno dal flusso.


int get_available_bytes() const 🔗

Restituisce il numero di byte che questo StreamPeer ha a disposizione.


Array get_data(bytes: int) 🔗

Returns a chunk data with the received bytes, as an Array containing two elements: an Error constant and a PackedByteArray. bytes is the number of bytes to be received. If not enough bytes are available, the function will block until the desired amount is received.


float get_double() 🔗

Ottiene un float a doppia precisione dal flusso.


float get_float() 🔗

Ottiene un float a singola precisione dal flusso.


float get_half() 🔗

Ottiene un float a mezza precisione dal flusso.


Array get_partial_data(bytes: int) 🔗

Returns a chunk data with the received bytes, as an Array containing two elements: an Error constant and a PackedByteArray. bytes is the number of bytes to be received. If not enough bytes are available, the function will return how many were actually received.


String get_string(bytes: int = -1) 🔗

Ottiene una stringa ASCII con lunghezza in byte bytes dal flusso. Se bytes è negativo (predefinito), la lunghezza verrà letta dal flusso attraverso il processo inverso di put_string().


int get_u8() 🔗

Ottiene un byte senza segno dal flusso.


int get_u16() 🔗

Ottiene un valore a 16 bit senza segno dal flusso.


int get_u32() 🔗

Ottiene un valore a 32 bit senza segno dal flusso.


int get_u64() 🔗

Ottiene un valore a 64 bit senza segno dal flusso.


String get_utf8_string(bytes: int = -1) 🔗

Ottiene una stringa UTF-8 con lunghezza in byte bytes dal flusso (ciò decodifica la stringa inviata in UTF-8). Se bytes è negativo (predefinito), la lunghezza verrà letta dal flusso attraverso il processo inverso di put_utf8_string().


Variant get_var(allow_objects: bool = false) 🔗

Ottiene un valore Variant dal flusso. 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.


void put_8(value: int) 🔗

Inserisce un byte con segno nel flusso.


void put_16(value: int) 🔗

Inserisce un valore a 16 bit con segno nel flusso.


void put_32(value: int) 🔗

Inserisce un valore a 32 bit con segno nel flusso.


void put_64(value: int) 🔗

Inserisce un valore a 64 bit con segno nel flusso.


Error put_data(data: PackedByteArray) 🔗

Invia un blocco di dati attraverso la connessione, bloccando se necessario fino al completamento dell'invio dei dati. Questa funzione restituisce un codice Error.


void put_double(value: float) 🔗

Inserisce un float a doppia precisione nel flusso.


void put_float(value: float) 🔗

Inserisce un float a singola precisione nel flusso.


void put_half(value: float) 🔗

Inserisce un float a mezza precisione nel flusso.


Array put_partial_data(data: PackedByteArray) 🔗

Invia un blocco di dati attraverso la connessione. Se non è stato possibile inviare tutti i dati in una volta, solo una parte di essi verrà inviata. Questa funzione restituisce due valori, un codice Error e un intero, che descrivono quanti dati sono stati effettivamente inviati.


void put_string(value: String) 🔗

Inserisce una stringa ASCII terminata da zero nel flusso, preceduta da un intero senza segno a 32 bit che rappresenta la dimensione della stringa.

Nota: Per inserire una stringa ASCII senza anteporre la sua dimensione, è possibile usare put_data():

put_data("Ciao mondo".to_ascii_buffer())

void put_u8(value: int) 🔗

Inserisce un byte senza segno nel flusso.


void put_u16(value: int) 🔗

Inserisce un valore a 16 bit senza segno nel flusso.


void put_u32(value: int) 🔗

Inserisce un valore a 32 bit senza segno nel flusso.


void put_u64(value: int) 🔗

Inserisce un valore a 64 bit senza segno nel flusso.


void put_utf8_string(value: String) 🔗

Inserisce una stringa UTF-8 terminata da zero nel flusso, preceduta da un intero senza segno a 32 bit che rappresenta la dimensione della stringa.

Nota: Per inserire una stringa UTF-8 senza anteporre la sua dimensione, è possibile usare put_data():

put_data("Ciao mondo".to_utf8_buffer())

void put_var(value: Variant, full_objects: bool = false) 🔗

Inserisce un valore Variant nel flusso. 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().