PacketPeer
Наследует: RefCounted < Object
Наследуется от: ENetPacketPeer, MultiplayerPeer, PacketPeerDTLS, PacketPeerExtension, PacketPeerStream, PacketPeerUDP, WebRTCDataChannel, WebSocketPeer
Абстракция и базовый класс для пакетных протоколов.
Описание
PacketPeer — это абстракция и базовый класс для пакетных протоколов (например, UDP). Он предоставляет API для отправки и получения пакетов как в виде необработанных данных, так и в виде переменных. Это упрощает передачу данных по протоколу, без необходимости кодировать данные как низкоуровневые байты или беспокоиться о порядке сети.
Примечание: При экспорте в Android обязательно включите разрешение INTERNET в предустановке экспорта Android перед экспортом проекта или использованием развертывания в один клик. В противном случае сетевое взаимодействие любого рода будет заблокировано Android.
Свойства
|
Методы
get_available_packet_count() const |
|
get_packet_error() const |
|
put_packet(buffer: PackedByteArray) |
|
Описания свойств
int encode_buffer_max_size = 8388608 🔗
Максимальный размер буфера, разрешенный при кодировании Variant. Увеличьте это значение для поддержки более интенсивного выделения памяти.
Метод put_var() выделяет память в стеке, и используемый буфер будет автоматически увеличиваться до ближайшей степени двойки, чтобы соответствовать размеру Variant. Если Variant больше, чем encode_buffer_max_size, метод выдаст ошибку с @GlobalScope.ERR_OUT_OF_MEMORY.
Описания метода
int get_available_packet_count() const 🔗
Возвращает количество пакетов, доступных в данный момент в кольцевом буфере.
PackedByteArray get_packet() 🔗
Получает необработанный пакет.
Error get_packet_error() const 🔗
Возвращает состояние ошибки последнего полученного пакета (через get_packet() и get_var()).
Variant get_var(allow_objects: bool = false) 🔗
Получает Variant. Если allow_objects равен true, декодирование объектов разрешено.
Внутренне это использует тот же механизм декодирования, что и метод @GlobalScope.bytes_to_var().
Предупреждение: Десериализованные объекты могут содержать код, который выполняется. Не используйте эту опцию, если сериализованный объект поступает из ненадежных источников, чтобы избежать потенциальных угроз безопасности, таких как удаленное выполнение кода.
Error put_packet(buffer: PackedByteArray) 🔗
Отправляет необработанный пакет.
Error put_var(var: Variant, full_objects: bool = false) 🔗
Отправляет Variant как пакет. Если full_objects равен true, кодирование объектов разрешено (и потенциально может включать код).
Внутри это использует тот же механизм кодирования, что и метод @GlobalScope.var_to_bytes().