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...
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à
|
Metodi
get_8() |
|
get_16() |
|
get_32() |
|
get_64() |
|
get_available_bytes() const |
|
get_half() |
|
get_partial_data(bytes: int) |
|
get_string(bytes: int = -1) |
|
get_u8() |
|
get_u16() |
|
get_u32() |
|
get_u64() |
|
get_utf8_string(bytes: int = -1) |
|
void |
|
void |
|
void |
|
void |
|
put_data(data: PackedByteArray) |
|
void |
put_double(value: float) |
void |
|
void |
|
put_partial_data(data: PackedByteArray) |
|
void |
put_string(value: String) |
void |
|
void |
|
void |
|
void |
|
void |
put_utf8_string(value: String) |
void |
Descrizioni delle proprietà
Se true, questo StreamPeer utilizzerà il formato big-endian per la codifica e la decodifica.
Descrizioni dei metodi
Ottiene un byte con segno dal flusso.
Ottiene un valore a 16-bit con segno dal flusso.
Ottiene un valore a 32-bit con segno dal flusso.
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.
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.
Ottiene un float a doppia precisione dal flusso.
Ottiene un float a singola precisione dal flusso.
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().
Ottiene un byte senza segno dal flusso.
Ottiene un valore a 16 bit senza segno dal flusso.
Ottiene un valore a 32 bit senza segno dal flusso.
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.
Inserisce un byte con segno nel flusso.
Inserisce un valore a 16 bit con segno nel flusso.
Inserisce un valore a 32 bit con segno nel flusso.
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.
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())
PutData("Ciao Mondo".ToAsciiBuffer());
Inserisce un byte senza segno nel flusso.
Inserisce un valore a 16 bit senza segno nel flusso.
Inserisce un valore a 32 bit senza segno nel flusso.
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())
PutData("Ciao Mondo".ToUtf8Buffer());
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().