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.
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.
Получает из потока число с плавающей точкой двойной точности.
Получает из потока число с плавающей точкой одинарной точности.
Получает из потока число с плавающей точкой половинной точности.
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) 🔗
Получает строку 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().