ENetPacketPeer
Класс-оболочка для ENetPeer(http://enet.bespin.org/group__peer.html).
Класс-оболочка для ENetPeer(http://enet.bespin.org/group__peer.html).
A PacketPeer :: осуществление, представляющее ENetConnection.
Этот класс не может быть напрямую установлен, но может быть извлечен во время ENetConnection.Service или через ENetConnection.GetPeers.
Примечание: При экспорте в Андроид убедитесь, что вы можете INTERNET В противном случае любая связь будет заблокирована Android.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Методы17
GetChannelsint
public int GetChannels();Возвращает количество каналов, выделенных для связи с одноранговым узлом.
intGetPacketFlagsint
public int GetPacketFlags();Возвращает флаги ENet следующего пакета в полученной очереди. См. константы FLAG_* для доступных флагов пакетов. Обратите внимание, что не все флаги реплицируются от отправляющего узла к принимающему узлу.
intGetRemoteAddressstring
public string GetRemoteAddress();Возвращает IP-адрес этого однорангового узла.
stringGetRemotePortint
public int GetRemotePort();Возвращает удаленный порт данного однорангового узла.
intGetStateENetPacketPeer.PeerState
public ENetPacketPeer.PeerState GetState();Возвращает текущее состояние однорангового узла (Peer).
ENetPacketPeer.PeerStateGetStatisticdouble
public double GetStatistic(ENetPacketPeer.PeerStatistic statistic);Возвращает запрошенную statistic для данного однорангового узла.
| Имя | Тип | По умолчанию |
|---|---|---|
statistic | ENetPacketPeer.PeerStatistic | — |
doubleIsActivebool
public bool IsActive();Возвращает true, если одноранговый узел в данный момент активен (т. е. связанный ENetConnection все еще действителен).
boolPeerDisconnectvoid
public void PeerDisconnect(int data = 0);Запрос на отключение от однорангового пира. ENetConnection.EventType.Disconnect будет сгенерирована во время ENetConnection.Service после завершения отключения.
| Имя | Тип | По умолчанию |
|---|---|---|
data | int | 0 |
PeerDisconnectLatervoid
public void PeerDisconnectLater(int data = 0);Запросить отключение от пира, но только после того, как все исходящие пакеты в очереди будут отправлены. ENetConnection.EventType.Disconnect будет сгенерирована во время ENetConnection.Service после завершения отключения.
| Имя | Тип | По умолчанию |
|---|---|---|
data | int | 0 |
PeerDisconnectNowvoid
public void PeerDisconnectNow(int data = 0);Принудительно выполнить немедленное отключение от однорангового пир. ENetConnection.EventType.Disconnect не будет сгенерирован. Не гарантируется, что внешний одноранговый узел получит уведомление об отключении, и он немедленно сбрасывается после возврата из этой функции.
| Имя | Тип | По умолчанию |
|---|---|---|
data | int | 0 |
Pingvoid
public void Ping();Отправляет запрос ping на одноранговый узел. ENet автоматически пингует все подключенные одноранговые узлы через регулярные интервалы, однако эта функция может быть вызвана для обеспечения более частых запросов ping.
PingIntervalvoid
public void PingInterval(int pingInterval);Устанавливает ENetPacketPeer.PingInterval в миллисекундах, с которым будут отправляться пинги на одноранговый пир. Пинги используются как для мониторинга активности соединения, так и для динамической регулировки дросселя в периоды низкого трафика, чтобы дроссель имел разумную скорость реагирования во время пиков трафика. Интервал пинга по умолчанию составляет 500 миллисекунд.
| Имя | Тип | По умолчанию |
|---|---|---|
pingInterval | int | — |
Resetvoid
public void Reset();Принудительно отключает одноранговый пир. Внешний хост, представленный одноранговым пир, не уведомляется об отключении и будет отключаться по тайм-ауту при подключении к локальному хосту.
Send2 перегрузки
public Error Send(int channel, byte[] packet, int flags);Ставит в очередь packet для отправки по указанному channel. См. константы FLAG_* для доступных флагов пакетов.
| Имя | Тип | По умолчанию |
|---|---|---|
channel | int | — |
packet | byte[] | — |
flags | int | — |
Errorpublic Error Send(int channel, ReadOnlySpan<byte> packet, int flags);Ставит в очередь packet для отправки по указанному channel. См. константы FLAG_* для доступных флагов пакетов.
| Имя | Тип | По умолчанию |
|---|---|---|
channel | int | — |
packet | ReadOnlySpan<byte> | — |
flags | int | — |
ErrorSetTimeoutvoid
public void SetTimeout(int timeout, int timeoutMin, int timeoutMax);Устанавливает параметры тайм-аута для однорангового пира. Параметры тайм-аута управляют тем, как и когда одноранговый узел будет выходить из-за неспособности подтвердить надежный трафик. Значения тайм-аута выражаются в миллисекундах.
timeout — это фактор, который, умноженный на значение, основанное на среднем времени кругового пути, определит предел тайм-аута для надежного пакета. Когда этот предел достигнут, тайм-аут будет удвоен, и одноранговый узел будет отключен, если этот предел достигнет timeout_min. Параметр timeout_max, с другой стороны, определяет фиксированный тайм-аут, в течение которого любой пакет должен быть подтвержден, иначе одноранговый узел будет отброшен.
| Имя | Тип | По умолчанию |
|---|---|---|
timeout | int | — |
timeoutMin | int | — |
timeoutMax | int | — |
ThrottleConfigurevoid
public void ThrottleConfigure(int interval, int acceleration, int deceleration);Настраивает параметр дросселя для однорангового пир.
Ненадежные пакеты отбрасываются ENet в ответ на изменяющиеся условия интернет-подключения к одноранговому пир. Дроссель представляет собой вероятность того, что ненадежный пакет не будет отброшен и, таким образом, отправлен ENet одноранговому пиру. Измеряя колебания времени кругового пути надежных пакетов в течение указанного interval, ENet либо увеличит вероятность на величину, указанную в параметре acceleration, либо уменьшит ее на величину, указанную в параметре deceleration (оба являются отношениями к ENetPacketPeer.PacketThrottleScale).
Когда дроссель имеет значение ENetPacketPeer.PacketThrottleScale, ненадежные пакеты не отбрасываются ENet, и поэтому будет отправлено 100% всех ненадежных пакетов.
Когда дроссель имеет значение 0, все ненадежные пакеты отбрасываются ENet, и поэтому будет отправлено 0% всех ненадежных пакетов.
Промежуточные значения для дросселя представляют собой промежуточные вероятности между 0% и 100% ненадежных отправляемых пакетов. Ограничения пропускной способности локальных и внешних хостов учитываются для определения разумного предела для вероятности дросселя, выше которого он не должен подниматься даже в самых лучших условиях.
| Имя | Тип | По умолчанию |
|---|---|---|
interval | int | — |
acceleration | int | — |
deceleration | int | — |
Поля и константы5
FlagReliableПоле
public const long FlagReliable = 1;Пометить отправляемый пакет как надежный.
FlagUnreliableFragmentПоле
public const long FlagUnreliableFragment = 8;Пометить отправляемый пакет как ненадежный, даже если пакет слишком большой и требует фрагментации (что увеличивает вероятность его потери).
FlagUnsequencedПоле
public const long FlagUnsequenced = 2;Отметить пакет, подлежащий отправке, как непоследовательный (ненадежный).
PacketLossScaleПоле
public const long PacketLossScale = 65536;Опорная шкала для потери пакетов. См. ENetPacketPeer.GetStatistic и ENetPacketPeer.PeerStatistic.PacketLoss.
PacketThrottleScaleПоле
public const long PacketThrottleScale = 32;Опорное значение для конфигурации дросселя. Значение по умолчанию — 32. См. ENetPacketPeer.ThrottleConfigure.
ENetPacketPeer.PeerState
| Значение | Описание |
|---|---|
AcknowledgingConnect = 2 | Пир подтвердил запрос на соединение. |
AcknowledgingDisconnect = 8 | Пир подтвердил запрос на отключение. |
Connected = 5 | В настоящее время пир подключен и готов к коммуникации. |
Connecting = 1 | В настоящее время пир пытается подключиться. |
ConnectionPending = 3 | В настоящее время пир подключается. |
ConnectionSucceeded = 4 | Пир успешно подключился, но пока не готов к взаимодействию ( |
DisconnectLater = 6 | Ожидается, что одноранговый узел отключится, когда у него больше не останется исходящих пакетов для отправки. |
Disconnected = 0 | Узел отключен. |
Disconnecting = 7 | В настоящее время соединение с пиром отключается. |
Zombie = 9 | Соединение с одноранговым пир было потеряно, но оно не считается полностью отключенным (поскольку одноранговый пир не подтвердил запрос на отключение). |
ENetPacketPeer.PeerStatistic
| Значение | Описание |
|---|---|
LastRoundTripTime = 5 | Последнее зафиксированное время прохождения надежного пакета туда и обратно. |
LastRoundTripTimeVariance = 6 | Разница во времени последней зафиксированной поездки. |
PacketLoss = 0 | Средняя потеря надежных пакетов как отношение к |
PacketLossEpoch = 2 | Время последнего обновления статистики потери пакетов (в миллисекундах с момента начала соединения). Интервал обновления статистики потери пакетов составляет 10 секунд, и с момента последнего обновления статистики должен быть отправлен хотя бы один пакет. |
PacketLossVariance = 1 | Коэффициент потери пакетов. |
PacketThrottle = 7 | Текущий статус дросселя однорангового пира. |
PacketThrottleAcceleration = 11 | Фактор ускорения дросселя. Более высокие значения заставят ENet быстрее адаптироваться к изменяющимся условиям сети, что приведет к отправке ненадежных пакетов чаще. Значение по умолчанию — |
PacketThrottleCounter = 9 | Внутреннее значение, используемое для увеличения счетчика дросселя пакетов. Значение жестко закодировано в |
PacketThrottleDeceleration = 12 | Фактор замедления дросселя. Более высокие значения заставят ENet быстрее адаптироваться к изменяющимся условиям сети, что приведет к отправке ненадежных пакетов реже часто. Значение по умолчанию — |
PacketThrottleEpoch = 10 | Время последнего обновления статистики дросселя (в миллисекундах с момента начала соединения). Интервал обновления статистики дросселя — |
PacketThrottleInterval = 13 | Интервал, в течение которого должно измеряться наименьшее среднее время прохождения сигнала туда и обратно для использования механизмом дроссельной заслонки (в миллисекундах). Значение по умолчанию — |
PacketThrottleLimit = 8 | Максимальное количество ненадежных пакетов, которые не должны быть отброшены. Это значение всегда больше или равно |
RoundTripTime = 3 | Среднее время прохождения пакета туда и обратно для надежных пакетов. |
RoundTripTimeVariance = 4 | Разница среднего времени прохождения сигнала туда и обратно. |