reckfellENGINE

PacketPeerUdp

Одноранговый UDP-пакет.

На этой странице
class PacketPeerUdpReckfellSharpНаследует PacketPeer

Одноранговый UDP-пакет.

UDP-пакетный узел. Может использоваться для отправки и получения необработанных UDP-пакетов, а также Variant-ы. Пример: Отправка пакета:

Пример: Прослушивание пакетов:

Примечание: При экспорте в Андроид убедитесь, что вы можете INTERNET В противном случае любая связь будет заблокирована Android.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Конструкторы1

PacketPeerUdpКонструктор
# PacketPeerUdp
C#
public PacketPeerUdp();

Методы13

BindError
# Bind
C#
public Error Bind(int port, string bindAddress = "*", int recvBufSize = 65536);

Связывает этот PacketPeerUdp с указанным port и bind_address с размером буфера recv_buf_size, что позволяет ему принимать входящие пакеты. Если bind_address установлен на "*" (по умолчанию), одноранговый узел будет привязан ко всем доступным адресам (как IPv4, так и IPv6). Если bind_address установлен на "0.0.0.0" (для IPv4) или "::" (для IPv6), одноранговый узел будет привязан ко всем доступным адресам, соответствующим этому типу IP. Если bind_address установлен на любой допустимый адрес (например, "192.168.1.101", "::1" и т. д.), одноранговый узел будет привязан только к интерфейсу с этим адресом (или потерпит неудачу, если интерфейс с указанным адресом не существует).

Параметры
ИмяТипПо умолчанию
portint—
bindAddressstring"*"
recvBufSizeint65536
Возвращает Error
Closevoid
# Close
C#
public void Close();

Закрывает базовый UDP-сокет PacketPeerUdp.

ConnectToHostError
# ConnectToHost
C#
public Error ConnectToHost(string host, int port);

Вызов этого метода подключает этот одноранговый узел UDP к заданной паре host/port. UDP на самом деле не требует установления соединения, поэтому эта опция означает только то, что входящие пакеты с разных адресов автоматически отбрасываются, а исходящие пакеты всегда отправляются на подключенный адрес (будущие вызовы PacketPeerUdp.SetDestAddress не разрешены). Этот метод не отправляет никаких данных удаленному одноранговому узлу, для этого используйте PacketPeer.PutVar или PacketPeer.PutPacket, как обычно. См. также UdpServer. Примечание: Подключение к удаленному одноранговому узлу не помогает защититься от вредоносных атак, таких как подмена IP-адреса и т. д. Подумайте об использовании метода шифрования, такого как TLS или DTLS, если вы чувствуете, что ваше приложение передает конфиденциальную информацию.

Параметры
ИмяТипПо умолчанию
hoststring—
portint—
Возвращает Error
GetLocalPortint
# GetLocalPort
C#
public int GetLocalPort();

Возвращает локальный порт, к которому привязан данный одноранговый узел.

Возвращает int
GetPacketIPstring
# GetPacketIP
C#
public string GetPacketIP();

Возвращает IP-адрес удаленного узла, отправившего последний пакет (который был получен с помощью PacketPeer.GetPacket или PacketPeer.GetVar).

Возвращает string
GetPacketPortint
# GetPacketPort
C#
public int GetPacketPort();

Возвращает порт удаленного узла, отправившего последний пакет (который был получен с помощью PacketPeer.GetPacket или PacketPeer.GetVar).

Возвращает int
IsBoundbool
# IsBound
C#
public bool IsBound();

Возвращает, привязан ли этот PacketPeerUdp к адресу и может ли он принимать пакеты.

Возвращает bool
IsSocketConnectedbool
# IsSocketConnected
C#
public bool IsSocketConnected();

Возвращает true, если сокет UDP открыт и подключен к удаленному адресу. См. PacketPeerUdp.ConnectToHost.

Возвращает bool
JoinMulticastGroupError
# JoinMulticastGroup
C#
public Error JoinMulticastGroup(string multicastAddress, string interfaceName);

Присоединяется к группе многоадресной рассылки, указанной multicast_address, используя интерфейс, идентифицированный interface_name. Вы можете присоединиться к той же группе многоадресной рассылки с несколькими интерфейсами. Используйте IP.GetLocalInterfaces, чтобы узнать, какие из них доступны. Примечание: Для работы многоадресной рассылки некоторым устройствам Android может потребоваться разрешение CHANGE_WIFI_MULTICAST_STATE.

Параметры
ИмяТипПо умолчанию
multicastAddressstring—
interfaceNamestring—
Возвращает Error
LeaveMulticastGroupError
# LeaveMulticastGroup
C#
public Error LeaveMulticastGroup(string multicastAddress, string interfaceName);

Удаляет интерфейс, идентифицированный interface_name, из группы многоадресной рассылки, указанной multicast_address.

Параметры
ИмяТипПо умолчанию
multicastAddressstring—
interfaceNamestring—
Возвращает Error
SetBroadcastEnabledvoid
# SetBroadcastEnabled
C#
public void SetBroadcastEnabled(bool enabled);

Включите или отключите отправку широковещательных пакетов (например, set_dest_address("255.255.255.255", 4343). Эта опция отключена по умолчанию. Примечание: Для некоторых устройств Android может потребоваться разрешение CHANGE_WIFI_MULTICAST_STATE и включение этой опции для приема широковещательных пакетов.

Параметры
ИмяТипПо умолчанию
enabledbool—
SetDestAddressError
# SetDestAddress
C#
public Error SetDestAddress(string host, int port);

Устанавливает адрес назначения и порт для отправки пакетов и переменных. Имя хоста будет разрешено с помощью DNS, если необходимо. Примечание: PacketPeerUdp.SetBroadcastEnabled должен быть включен перед отправкой пакетов на широковещательный адрес (например, 255.255.255.255).

Параметры
ИмяТипПо умолчанию
hoststring—
portint—
Возвращает Error
WaitError
# Wait
C#
public Error Wait();

Ожидает прибытия пакета на привязанный адрес. См. PacketPeerUdp.Bind. Примечание: PacketPeerUdp.Wait не может быть прерван после вызова. Это можно обойти, разрешив другой стороне отправить определенный пакет «пилюли смерти», например:

C#
var socket = new PacketPeerUdp();
// Server
socket.SetDestAddress("127.0.0.1", 789);
socket.PutPacket("Time to stop".ToAsciiBuffer());

// Client
while (socket.Wait() == OK)
{
    string data = socket.GetPacket().GetStringFromASCII();
    if (data == "Time to stop")
    {
        return;
    }
}
Возвращает Error
Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.