PacketPeer

Успадковує: RefCounted < Object

Успадковано від: ENetPacketPeer, MultiplayerPeer, PacketPeerDTLS, PacketPeerExtension, PacketPeerStream, PacketPeerUDP, WebRTCDataChannel, WebSocketPeer

Анотація та базовий клас для протоколів на основі пакетів.

Опис

Пакети Peer - анотація та базовий клас для протоколів пакетів (наприклад, UDP). Надання API для відправки та отримання пакетів як сирих, так і змінних. Це дозволяє легко перенести дані за протоколом, не маючи даних кодування, як низькорівневі байти або турбуватися про мережевий замовлення.

Примітка: При експорті до Android, переконайтеся, що ввімкнути INTERNET дозвіл на експорт Android перед експортуванням проекту або за допомогою однієї кнопки розгортання. Інакше, мережевий зв'язок будь-якого роду буде заблокований Android.

Властивості

int

encode_buffer_max_size

8388608

Методи

int

get_available_packet_count() const

PackedByteArray

get_packet()

Error

get_packet_error() const

Variant

get_var(allow_objects: bool = false)

Error

put_packet(buffer: PackedByteArray)

Error

put_var(var: Variant, full_objects: bool = false)


Описи властивостей

int encode_buffer_max_size = 8388608 🔗

  • void set_encode_buffer_max_size(value: int)

  • int get_encode_buffer_max_size()

Максимальний розмір буфера допускається при кодуванні Variants. Використовуйте це значення для підтримки важчих переселень пам'яті.

Метод set_var() виділяє пам'ять на стек, а використовуваний буфер автоматично зросте до найближчої потужності двох, щоб відповідати розмірам Variant. Якщо Variant є більшим, ніж код_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) 🔗

Отримує варіант. Якщо 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().