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
Наследует: RefCounted < Object
Наследуется от: StreamPeerBuffer, StreamPeerExtension, StreamPeerGZIP, StreamPeerSocket, StreamPeerTLS
Абстрактный базовый класс для взаимодействия с потоками.
Описание
StreamPeer — абстрактный базовый класс, в основном используемый для потоковых протоколов (таких как TCP). Он предоставляет API для отправки и получения данных через потоки в виде необработанных данных или строк.
Примечание: При экспорте в 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 будет использовать формат big-endian для кодирования и декодирования.
Описания метода
Получает знаковый байт из потока.
Получает из потока знаковое 16-битное значение.
Получает из потока знаковое 32-битное значение.
Получает из потока знаковое 64-битное значение.
int get_available_bytes() const 🔗
Возвращает количество байтов, доступных этому StreamPeer.
Возвращает фрагмент данных с полученными байтами в виде массива Array, содержащего два элемента: константу Error и массив PackedByteArray. bytes — количество байтов, которые необходимо получить. Если байтов недостаточно, функция будет блокироваться до тех пор, пока не будет получено необходимое количество.
Получает из потока число с плавающей точкой двойной точности.
Получает из потока число с плавающей точкой одинарной точности.
Получает из потока число с плавающей точкой половинной точности.
Array get_partial_data(bytes: int) 🔗
Возвращает фрагмент данных с полученными байтами в виде массива Array, содержащего два элемента: константу Error и массив PackedByteArray. bytes — количество байтов, которые необходимо получить. Если байтов недостаточно, функция вернет фактическое количество полученных байтов.
String get_string(bytes: int = -1) 🔗
Получает строку ASCII с длиной байта bytes из потока. Если bytes отрицательный (по умолчанию), длина будет считана из потока с использованием обратного процесса put_string().
Получает беззнаковый байт из потока.
Получает из потока беззнаковое 16-битное значение.
Получает из потока беззнаковое 32-битное значение.
Получает беззнаковое 64-битное значение из потока.
String get_utf8_string(bytes: int = -1) 🔗
Получает строку UTF-8 с длиной байта 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) 🔗
Помещает Variant в поток. Если full_objects равен true, кодирование объектов разрешено (и потенциально может включать код).
Внутри это использует тот же механизм кодирования, что и метод @GlobalScope.var_to_bytes().