Files
godot-docs-l10n/classes/uk/class_packetpeer.rst

173 lines
11 KiB
ReStructuredText
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

:github_url: hide
.. _class_PacketPeer:
PacketPeer
==========
**Успадковує:** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
**Успадковано від:** :ref:`ENetPacketPeer<class_ENetPacketPeer>`, :ref:`MultiplayerPeer<class_MultiplayerPeer>`, :ref:`PacketPeerDTLS<class_PacketPeerDTLS>`, :ref:`PacketPeerExtension<class_PacketPeerExtension>`, :ref:`PacketPeerStream<class_PacketPeerStream>`, :ref:`PacketPeerUDP<class_PacketPeerUDP>`, :ref:`WebRTCDataChannel<class_WebRTCDataChannel>`, :ref:`WebSocketPeer<class_WebSocketPeer>`
Анотація та базовий клас для протоколів на основі пакетів.
.. rst-class:: classref-introduction-group
Опис
--------
Пакети Peer - анотація та базовий клас для протоколів пакетів (наприклад, UDP). Надання API для відправки та отримання пакетів як сирих, так і змінних. Це дозволяє легко перенести дані за протоколом, не маючи даних кодування, як низькорівневі байти або турбуватися про мережевий замовлення.
\ **Примітка:** При експорті до Android, переконайтеся, що ввімкнути ``INTERNET`` дозвіл на експорт Android перед експортуванням проекту або за допомогою однієї кнопки розгортання. Інакше, мережевий зв'язок будь-якого роду буде заблокований Android.
.. rst-class:: classref-reftable-group
Властивості
----------------------
.. table::
:widths: auto
+-----------------------+---------------------------------------------------------------------------------+-------------+
| :ref:`int<class_int>` | :ref:`encode_buffer_max_size<class_PacketPeer_property_encode_buffer_max_size>` | ``8388608`` |
+-----------------------+---------------------------------------------------------------------------------+-------------+
.. rst-class:: classref-reftable-group
Методи
------------
.. table::
:widths: auto
+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`int<class_int>` | :ref:`get_available_packet_count<class_PacketPeer_method_get_available_packet_count>`\ (\ ) |const| |
+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`PackedByteArray<class_PackedByteArray>` | :ref:`get_packet<class_PacketPeer_method_get_packet>`\ (\ ) |
+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`get_packet_error<class_PacketPeer_method_get_packet_error>`\ (\ ) |const| |
+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Variant<class_Variant>` | :ref:`get_var<class_PacketPeer_method_get_var>`\ (\ allow_objects\: :ref:`bool<class_bool>` = false\ ) |
+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`put_packet<class_PacketPeer_method_put_packet>`\ (\ buffer\: :ref:`PackedByteArray<class_PackedByteArray>`\ ) |
+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Error<enum_@GlobalScope_Error>` | :ref:`put_var<class_PacketPeer_method_put_var>`\ (\ var\: :ref:`Variant<class_Variant>`, full_objects\: :ref:`bool<class_bool>` = false\ ) |
+-----------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Описи властивостей
------------------------------------
.. _class_PacketPeer_property_encode_buffer_max_size:
.. rst-class:: classref-property
:ref:`int<class_int>` **encode_buffer_max_size** = ``8388608`` :ref:`🔗<class_PacketPeer_property_encode_buffer_max_size>`
.. rst-class:: classref-property-setget
- |void| **set_encode_buffer_max_size**\ (\ value\: :ref:`int<class_int>`\ )
- :ref:`int<class_int>` **get_encode_buffer_max_size**\ (\ )
Максимальний розмір буфера допускається при кодуванні :ref:`Variant<class_Variant>`\ s. Використовуйте це значення для підтримки важчих переселень пам'яті.
Метод :ref:`set_var()<class_PacketPeer_method_set_var>` виділяє пам'ять на стек, а використовуваний буфер автоматично зросте до найближчої потужності двох, щоб відповідати розмірам :ref:`Variant<class_Variant>`. Якщо :ref:`Variant<class_Variant>` є більшим, ніж :ref:од_buffer_max_size<class_PacketPeer_property_код_buffer_max_size>`, метод буде похибуватися з :ref:`@GlobalScope.ERR_OUT_OF_MEMORY<class_@GlobalScope_constant_ERR_OUT_OF_MEMORY>`.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Описи методів
--------------------------
.. _class_PacketPeer_method_get_available_packet_count:
.. rst-class:: classref-method
:ref:`int<class_int>` **get_available_packet_count**\ (\ ) |const| :ref:`🔗<class_PacketPeer_method_get_available_packet_count>`
Повертає кількість пакетів, які в даний час доступні в кільце-буфері.
.. rst-class:: classref-item-separator
----
.. _class_PacketPeer_method_get_packet:
.. rst-class:: classref-method
:ref:`PackedByteArray<class_PackedByteArray>` **get_packet**\ (\ ) :ref:`🔗<class_PacketPeer_method_get_packet>`
Отримує сирий пакет.
.. rst-class:: classref-item-separator
----
.. _class_PacketPeer_method_get_packet_error:
.. rst-class:: classref-method
:ref:`Error<enum_@GlobalScope_Error>` **get_packet_error**\ (\ ) |const| :ref:`🔗<class_PacketPeer_method_get_packet_error>`
Повертаємо стан помилки останнього пакета, отриманого (через :ref:`get_packet()<class_PacketPeer_method_get_packet>` та :ref:`get_var()<class_PacketPeer_method_get_var>`).
.. rst-class:: classref-item-separator
----
.. _class_PacketPeer_method_get_var:
.. rst-class:: classref-method
:ref:`Variant<class_Variant>` **get_var**\ (\ allow_objects\: :ref:`bool<class_bool>` = false\ ) :ref:`🔗<class_PacketPeer_method_get_var>`
Отримує варіант. Якщо ``allow_objects`` є ``true``, декодування об'єктів дозволено.
Внутрішнє використання такого ж механізму декодування, як методу :ref:`GlobalScope.bytes_to_var()<class_GlobalScope_method_bytes_to_var>`.
\ **Попередження:** Десеріалізовані об'єкти можуть містити код, який отримує виконану. Не використовуйте цей параметр, якщо послідовний об'єкт виходить з ненадійних джерел, щоб уникнути загроз потенційної безпеки, таких як віддалене виконання коду.
.. rst-class:: classref-item-separator
----
.. _class_PacketPeer_method_put_packet:
.. rst-class:: classref-method
:ref:`Error<enum_@GlobalScope_Error>` **put_packet**\ (\ buffer\: :ref:`PackedByteArray<class_PackedByteArray>`\ ) :ref:`🔗<class_PacketPeer_method_put_packet>`
Надіслав сирий пакет.
.. rst-class:: classref-item-separator
----
.. _class_PacketPeer_method_put_var:
.. rst-class:: classref-method
:ref:`Error<enum_@GlobalScope_Error>` **put_var**\ (\ var\: :ref:`Variant<class_Variant>`, full_objects\: :ref:`bool<class_bool>` = false\ ) :ref:`🔗<class_PacketPeer_method_put_var>`
Відправляється :ref:`Variant<class_Variant>` як пакет. Якщо ``full_objects`` є ``true``, кодування об'єктів дозволено (і може потенційно включати код).
Внутрішня, це використовує той же механізм кодування, як :ref:`GlobalScope.var_to_bytes()<class_GlobalScope_method_var_to_bytes>`.
.. |virtual| replace:: :abbr:`virtual (Зазвичай, цей метод перевизначається користувачем, щоб він мав вплив.)`
.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
.. |const| replace:: :abbr:`const (Цей метод не має побічних ефектів. Не змінює ніяку змінну екземпляра об'єкта.)`
.. |vararg| replace:: :abbr:`vararg (Цей метод приймає будь-яке число аргументів після описаних тут.)`
.. |constructor| replace:: :abbr:`constructor (Цей метод використовується для побудови типів.)`
.. |static| replace:: :abbr:`static (Цей метод не потребує екземпляра для виклику, його можна викликати безпосередньо за допомогою назви класу.)`
.. |operator| replace:: :abbr:`operator (Цей метод описує дійсний оператор для взаємодії з цим типом як з лівим операндом.)`
.. |bitfield| replace:: :abbr:`BitField (Це значення є цілим числом, складеним у вигляді бітової маски з наступних прапорів.)`
.. |void| replace:: :abbr:`void (Значення не повертається.)`