StreamPeer
Успадковує: RefCounted < Object
Успадковано від: StreamPeerBuffer, StreamPeerExtension, StreamPeerGZIP, StreamPeerTCP, StreamPeerTLS
Абстрактний базовий клас взаємодії з потоками.
Опис
StreamPeer є абстрактним базовим класом в основному використовується для потокових протоколів (наприклад, TCP). Надання API для відправки та отримання даних через струмки, як сирі дані або рядки.
Note: При експорті до Android, переконайтеся, що ввімкнути INTERNET дозвіл на експорт Android перед експортуванням проекту або за допомогою одного кліка розгортання. Інакше, мережевий зв'язок будь-якого роду буде заблокований Android.
Властивості
|
Методи
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 |
Описи властивостей
Якщо true, це StreamPeer буде використовувати великий формат кодування та декодування.
Описи методів
Отримує підписаний байт з потоку.
Отримує підписане 16-бітове значення з потоку.
Отримує підписану 32-бітну вартість з потоку.
Отримує підписане 64-розрядне значення з потоку.
int get_available_bytes() const 🔗
Повертає кількість байтів, доступних StreamPeer.
Повертає з отриманими байтами. Кількість байтів, які будуть отримані, можна запитати в аргументі bytes. Якщо не вистачає байтів, функція заблокує до отримання бажаної кількості. Ця функція повертає два значення, код Error та масив даних.
Gets a double-precision float from the потік.
Отримує число з плаваючою комою одинарної точності з потоку.
Отримує плаваюче значення напівточності з потоку.
Array get_partial_data(bytes: int) 🔗
Повертає фрагмент даних з отриманими байтами. Кількість байтів, які потрібно отримати, можна запитати в аргументі bytes. Якщо доступних байтів недостатньо, функція поверне кількість, яка була фактично отримана. Ця функція повертає два значення: код помилки Error та масив даних.
String get_string(bytes: int = -1) 🔗
Gets ASCII string з tote-length bytes від потоку. Якщо bytes є негативним (default) довжина буде читати з потоку, використовуючи зворотний процес put_string().
Отримує беззнаковий байт з потоку.
Отримує беззнакове 16-бітове значення з потоку.
Отримує беззнакове 32-бітове значення з потоку.
Отримує беззнакове 64-бітове значення з потоку.
String get_utf8_string(bytes: int = -1) 🔗
Отримує рядок UTF-8 з byte-length bytes з потоку (декодує рядок, надісланий як UTF-8). Якщо bytes від'ємне (за замовчуванням), довжина буде зчитуватися з потоку за допомогою зворотний процес put_utf8_string().
Variant get_var(allow_objects: bool = false) 🔗
Отримує значення Variant з потоку. Якщо allow_objects має значення true, декодування об'єктів дозволено.
Внутрішньо використовується той самий механізм декодування, що й метод @GlobalScope.bytes_to_var().
Попередження: Десеріалізовані об'єкти можуть містити код, який виконується. Не використовуйте цю опцію, якщо серіалізований об'єкт походить з ненадійних джерел, щоб уникнути потенційних загроз безпеці, таких як віддалене виконання коду.
Поставила підписану в потік.
Поставила підписану 16-бітну вартість в потік.
Поставила підписану 32-бітну вартість в потік.
Поставила підписану 64-бітну вартість в потік.
Error put_data(data: PackedByteArray) 🔗
Відправляємо роз'єм даних через з'єднання, заблокувавши при необхідності до того моменту, поки дані буде здійснено відправлення. Ця функція повертає код Error.
void put_double(value: float) 🔗
Поставить подвійну точність плавати в потік.
void put_float(value: float) 🔗
Поставить одноточну порцію в потік.
Розміщує поплавок напівточності в потік.
Array put_partial_data(data: PackedByteArray) 🔗
Відправляємо роз'єм даних через підключення. Якщо всі дані не можуть бути відправлені один раз, тільки його частина буде. Ця функція повертає два значення, код Error та ціле число, що описує, скільки даних було фактично відправлено.
void put_string(value: String) 🔗
Розміщує рядок ASCII із нульовим завершенням у потік, перед яким ставиться 32-розрядне ціле число без знаку, що представляє його розмір.
Примітка. Щоб розмістити рядок ASCII без додавання його розміру, ви можете використати put_data():
put_data("Hello, world".to_ascii_buffer())
PutData("Hello World".ToAsciiBuffer());
Поставить невизнаний байт в потік.
Поставляє невизнане значення 16-біту в потік.
Поставляє невизнане значення 32-біту в потік.
Поставляє невизнане значення 64-біту в потік.
void put_utf8_string(value: String) 🔗
Розміщує рядок UTF-8 із нульовим завершенням у потік із 32-бітовим цілим числом без знаку, що представляє його розмір.
Примітка. Щоб розмістити рядок UTF-8 без додавання його розміру, ви можете використати put_data():
put_data("Hello world".to_utf8_buffer())
PutData("Hello World".ToUtf8Buffer());
void put_var(value: Variant, full_objects: bool = false) 🔗
Поставить Варіант в потік. Якщо full_objects є true кодування об'єктів дозволено (і може потенційно включати код).
Внутрішня, це використовує той же механізм кодування, як GlobalScope.var_to_bytes().