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