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.

ENetMultiplayerPeer

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

Мультиплеер Використання ` Бібліотека ENet <http://enet.bespin.org/index.html>`__.

Опис

Мультиплеер Після ініціалізації як клієнт, сервер або сітка. Заяви можуть бути використані при підключенні до сигналів MultiplayerAPI. Див. ENetConnection для отримання додаткової інформації про обгортку бібліотеки ENet.

Примітка: ENet використовує UDP, не TCP. При переадресації серверного порту, щоб зробити сервер доступним на публічному інтернеті, вам потрібно переадресувати серверний порт в UDP. Ви можете використовувати клас UPNP, щоб спробувати переадресувати порт сервера автоматично при запуску сервера.

Посібники

Властивості

ENetConnection

host

Методи

Error

add_mesh_peer(peer_id: int, host: ENetConnection)

Error

create_client(address: String, port: int, channel_count: int = 0, in_bandwidth: int = 0, out_bandwidth: int = 0, local_port: int = 0)

Error

create_mesh(unique_id: int)

Error

create_server(port: int, max_clients: int = 32, max_channels: int = 0, in_bandwidth: int = 0, out_bandwidth: int = 0)

ENetPacketPeer

get_peer(id: int) const

void

set_bind_ip(ip: String)


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

ENetConnection host 🔗

Базовий ENetConnection, створений після create_client() та create_server().


Описи методів

Error add_mesh_peer(peer_id: int, host: ENetConnection) 🔗

Додайте новий віддалений одноліток з заданим peer_id, підключений до даної host.

Примітка: The host повинен мати рівно один одноліток в ENetPacketPeer.STATE_CONNECTED держава.


Error create_client(address: String, port: int, channel_count: int = 0, in_bandwidth: int = 0, out_bandwidth: int = 0, local_port: int = 0) 🔗

Створіть клієнт, який підключений до сервера за допомогою вказаного port. Дана адреса повинна бути або повністю кваліфікованою доменною назвою (наприклад, "www.example.com") або IP-адресою в форматі IPv4 або IPv6 (наприклад, "192.168.1.1"). port є портом, який прослуховує сервер. Параметри параметра Channel_count можна використовувати для визначення кількості каналів ENet, виділених для підключення. Параметри in_bandwidth та out_width можуть використовуватися для обмеження пропускної здатності та пропускної здатності до даної кількості байтів на секунду. За замовчуванням 0 означає необмежену пропускну здатність. Зауважте, що ENet буде стратегічно скидати пакети з конкретних сторін з'єднання між однолітками, щоб забезпечити пропускну здатність однолітків не переповнений. Параметри смуги також визначають розмір вікна з'єднання, яка обмежує кількість надійних пакетів, які можуть бути в будь-який час. Повернення @GlobalScope.OK якщо клієнт був створений, @GlobalScope.ERR_ALREADY_IN_USE, якщо це ENetMultiplayerPeer екземпляр вже має відкритий зв'язок (в якому випадку потрібно викликати MultiplayerPeer.close() first) або @GlobalScope.ERR_CANT_CREATE якщо клієнт не може бути створений. Якщо вказано локальну_порт, клієнт також послухає наданий порт; це корисно для деяких траверсальних технік NAT.


Error create_mesh(unique_id: int) 🔗

Встановити цей MultiplayerPeer в режимі сітки. Надані unique_id будуть використовуватися як локальна мережа одностороннього зв'язку, яка була призначена як MultiplayerAPI.multiplayer_peer. У сітчастій конфігурації потрібно налаштувати кожен новий одноліток вручну за допомогою ENetConnection перед викликом add_mesh_peer(). В той час як ця техніка є більш розширеною, вона дозволяє краще контролювати процес з'єднання (наприклад, при роботі з пропуском NAT) і для кращого розподілу мережевого навантаження (що інакше буде більш податковим на сервер).


Error create_server(port: int, max_clients: int = 32, max_channels: int = 0, in_bandwidth: int = 0, out_bandwidth: int = 0) 🔗

Створіть сервер, який буде слухати з'єднання через port. Порт має бути доступним, невикористаним портом у діапазоні від 0 до 65535. Зверніть увагу, що порти нижче 1024 є привілейованими і можуть вимагати підвищених дозволів залежно від платформи. Щоб змінити інтерфейс, який слухає сервер, використовуйте set_bind_ip(). За замовчуванням IP-адресою є шаблон "*", який прослуховує всі доступні інтерфейси. Параметр max_clients - це максимальна кількість клієнтів, яка дозволена одночасно, можна використовувати будь-яке число до 4095, хоча досяжна кількість одночасних клієнтів може бути значно меншою і залежить від програми. Для отримання додаткової інформації про параметри пропускної здатності дивіться create_client(). Повертає @GlobalScope.OK, якщо сервер було створено, @GlobalScope.ERR_ALREADY_IN_USE, якщо цей екземпляр ENetMultiplayerPeer вже має відкрите з'єднання (у цьому випадку потрібно спочатку викликати MultiplayerPeer.close()) або @GlobalScope.ERR_CANT_CREATE, якщо сервер не вдалося створити.


ENetPacketPeer get_peer(id: int) const 🔗

Повернення ENetPacketPeer, пов'язаної з даним id.


void set_bind_ip(ip: String) 🔗

ІП використовується при створенні сервера. Це встановлюється на дикихкартах "*" за замовчуванням, який зв'язується з усіма доступними інтерфейсами. Заданий IP потрібно бути в форматі IPv4 або IPv6, наприклад: "192.168.1.1".