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

Hérite de : RefCounted < Object

Hérité par : StreamPeerBuffer, StreamPeerExtension, StreamPeerGZIP, StreamPeerSocket, StreamPeerTLS

Classe de base abstraite pour interagir avec des flux.

Description

StreamPeer est une classe de base abstraite principalement utilisée pour les protocoles orientés flux (comme le TCP). Elle fournit une API pour l'envoi et la réception de données à travers des flux comme des données brutes ou des chaînes de caractères.

Note : Lors de l'export vers Android, assurez-vous d'activer la permission INTERNET dans le préréglage d'export Android avant d'exporter le projet ou d'utiliser un déploiement en un clic. Sinon, la communication réseau de tout type sera bloquée par Android.

Propriétés

bool

big_endian

false

Méthodes

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)


Descriptions des propriétés

bool big_endian = false 🔗

  • void set_big_endian(value: bool)

  • bool is_big_endian_enabled()

Si true, ce StreamPeer utilisera le format big-endian pour l'encodage et le décodage.


Descriptions des méthodes

int get_8() 🔗

Obtient un octet signé depuis le flux.


int get_16() 🔗

Obtient une valeur 16 bits signée depuis le flux.


int get_32() 🔗

Obtient une valeur 32 bits signée depuis le flux.


int get_64() 🔗

Obtient une valeur 64 bits signée depuis le flux.


int get_available_bytes() const 🔗

Renvoie le nombre d'octets que ce StreamPeer a de disponible.


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() 🔗

Obtient un flottant à double-précision depuis le flux.


float get_float() 🔗

Obtient un flottant à simple précision depuis le flux.


float get_half() 🔗

Obtient un flottant en demi-précision depuis le flux.


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) 🔗

Obtient une chaîne ASCII d'une longueur de bytes octets du flux. Si bytes est négatif (par défaut), la longueur sera lue depuis le flux en utilisant le processus inverse de put_string().


int get_u8() 🔗

Obtient un octet non signé depuis le flux.


int get_u16() 🔗

Obtient une valeur 16 bits non signée depuis le flux.


int get_u32() 🔗

Obtient une valeur 32 bits non signée depuis le flux.


int get_u64() 🔗

Obtient une valeur 64 bits non signée depuis le flux.


String get_utf8_string(bytes: int = -1) 🔗

Obtient une chaîne UTF-8 d'une longueur de bytes octets du flux (ceci décode la chaîne envoyée en UTF-8). Si bytes est négatif (par défaut), la longueur sera lue depuis le flux en utilisant le processus inverse de put_utf8_string().


Variant get_var(allow_objects: bool = false) 🔗

Obtient un Variant du flux. Si allow_objects vaut true, le décodage des objets est autorisé.

En interne, cela utilise le même mécanisme de décodage que la méthode @GlobalScope.bytes_to_var().

Avertissement : Les objets désérialisés peuvent contenir du code qui sera exécuté. N'utilisez pas cette option si l'objet sérialisé provient de sources non sûres pour éviter des risques de sécurité telles que de l'exécution de code à distance.


void put_8(value: int) 🔗

Ajoute un octet signé dans le flux.


void put_16(value: int) 🔗

Ajoute une valeur de 16 bits dans le flux.


void put_32(value: int) 🔗

Ajoute une valeur de 32 bits dans le flux.


void put_64(value: int) 🔗

Ajoute une valeur de 64 bits dans le flux.


Error put_data(data: PackedByteArray) 🔗

Envoie un morceau de données à travers la connexion, en bloquant si nécessaire jusqu'à ce que les données soient finies d'être envoyées. Cette fonction renvoie un code Error.


void put_double(value: float) 🔗

Ajoute un flottant en double-précision dans le flux.


void put_float(value: float) 🔗

Ajoute un flottant en simple-précision dans le flux.


void put_half(value: float) 🔗

Ajoute un flottant en demi-précision dans le flux.


Array put_partial_data(data: PackedByteArray) 🔗

Envoie un morceau de données par la connexion. Si toutes les données ne peuvent pas être envoyées à la fois, seule une partie de celles-ci le seront. Cette fonction renvoie deux valeurs : un code Error, et un entier, décrivant combien de données ont effectivement été envoyées.


void put_string(value: String) 🔗

Ajoute une chaîne ASCII se terminant par le caractère nul dans le flux, précédée par un entier 32 bits non signé représentant sa taille.

Note : Pour ajouter une chaîne ASCII sans la faire précéder par sa taille, vous pouvez utiliser put_data() :

put_data("Salut le monde".to_ascii_buffer())

void put_u8(value: int) 🔗

Ajouter un octet non signé dans le flux.


void put_u16(value: int) 🔗

Ajoute une valeur de 16 bits non signée dans le flux.


void put_u32(value: int) 🔗

Ajoute une valeur de 32 bits non signée dans le flux.


void put_u64(value: int) 🔗

Ajoute une valeur de 64 bits non signée dans le flux.


void put_utf8_string(value: String) 🔗

Ajoute une chaîne UTF-8 se terminant par le caractère nul dans le flux, précédée par un entier 32 bits non signé représentant sa taille.

Note : Pour ajouter une chaîne UTF-8 sans la faire précéder par sa taille, vous pouvez utiliser put_data() :

put_data("Salut le monde".to_utf8_buffer())

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

Ajoute un Variant dans le flux. Si full_objects vaut true, l'encodage d'objets est autorisé (et ceux-ci peuvent potentiellement contenir du code).

En interne, cela utilise le même mécanisme d'encodage que la méthode @GlobalScope.var_to_bytes().