Class NetManager
Main class for all network operations. Can be used as client and/or server.
Namespace: LiteNetLib
Assembly: LiteNetLib.dll
Syntax
public class NetManager : IEnumerable<NetPeer>, IEnumerableConstructors
NetManager(INetEventListener, PacketLayerBase)
NetManager constructor
Declaration
public NetManager(INetEventListener listener, PacketLayerBase extraPacketLayer = null)Parameters
| Type | Name | Description | 
|---|---|---|
| INetEventListener | listener | Network events listener (also can implement IDeliveryEventListener) | 
| PacketLayerBase | extraPacketLayer | Extra processing of packages, like CRC checksum or encryption. All connected NetManagers must have same layer. | 
Fields
AllowPeerAddressChange
Allows peer change it's ip (lte to wifi, wifi to lte, etc). Use only on server
Declaration
public bool AllowPeerAddressChangeField Value
| Type | Description | 
|---|---|
| bool | 
AutoRecycle
Automatically recycle NetPacketReader after OnReceive event
Declaration
public bool AutoRecycleField Value
| Type | Description | 
|---|---|
| bool | 
BroadcastReceiveEnabled
Allows receive broadcast packets
Declaration
public bool BroadcastReceiveEnabledField Value
| Type | Description | 
|---|---|
| bool | 
DisconnectOnUnreachable
Disconnect peers if HostUnreachable or NetworkUnreachable spawned (old behaviour 0.9.x was true)
Declaration
public bool DisconnectOnUnreachableField Value
| Type | Description | 
|---|---|
| bool | 
DisconnectTimeout
If NetManager doesn't receive any packet from remote peer during this time (in milliseconds) then connection will be closed (including library internal keepalive packets)
Declaration
public int DisconnectTimeoutField Value
| Type | Description | 
|---|---|
| int | 
DontRoute
UDP Only Socket Option Normally IP sockets send packets of data through routers and gateways until they reach the final destination. If the DontRoute flag is set to True, then data will be delivered on the local subnet only.
Declaration
public bool DontRouteField Value
| Type | Description | 
|---|---|
| bool | 
EnableStatistics
Toggles the collection of network statistics for the instance and all known peers
Declaration
public bool EnableStatisticsField Value
| Type | Description | 
|---|---|
| bool | 
IPv6Enabled
IPv6 support
Declaration
public bool IPv6EnabledField Value
| Type | Description | 
|---|---|
| bool | 
IPv6Support
Declaration
public static readonly bool IPv6SupportField Value
| Type | Description | 
|---|---|
| bool | 
MaxConnectAttempts
Maximum connection attempts before client stops and call disconnect event.
Declaration
public int MaxConnectAttemptsField Value
| Type | Description | 
|---|---|
| int | 
MaxPacketsReceivePerUpdate
Maximum packets count that will be processed in Manual PollEvents
Declaration
public int MaxPacketsReceivePerUpdateField Value
| Type | Description | 
|---|---|
| int | 
MtuOverride
Override MTU for all new peers registered in this NetManager, will ignores MTU Discovery!
Declaration
public int MtuOverrideField Value
| Type | Description | 
|---|---|
| int | 
NatPunchEnabled
Enable nat punch messages
Declaration
public bool NatPunchEnabledField Value
| Type | Description | 
|---|---|
| bool | 
NatPunchModule
NatPunchModule for NAT hole punching operations
Declaration
public readonly NatPunchModule NatPunchModuleField Value
| Type | Description | 
|---|---|
| NatPunchModule | 
PacketPoolSize
Maximum packet pool size (increase if you have tons of packets sending)
Declaration
public int PacketPoolSizeField Value
| Type | Description | 
|---|---|
| int | 
PingInterval
Interval for latency detection and checking connection (in milliseconds)
Declaration
public int PingIntervalField Value
| Type | Description | 
|---|---|
| int | 
ReconnectDelay
Delay between initial connection attempts (in milliseconds)
Declaration
public int ReconnectDelayField Value
| Type | Description | 
|---|---|
| int | 
ReuseAddress
Enables socket option "ReuseAddress" for specific purposes
Declaration
public bool ReuseAddressField Value
| Type | Description | 
|---|---|
| bool | 
SimulateLatency
Simulate latency by holding packets for random time. (Works only in DEBUG builds or when SIMULATE_NETWORK is defined)
Declaration
public bool SimulateLatencyField Value
| Type | Description | 
|---|---|
| bool | 
SimulatePacketLoss
Simulate packet loss by dropping random amount of packets. (Works only in DEBUG builds or when SIMULATE_NETWORK is defined)
Declaration
public bool SimulatePacketLossField Value
| Type | Description | 
|---|---|
| bool | 
SimulationMaxLatency
Maximum simulated latency (in milliseconds)
Declaration
public int SimulationMaxLatencyField Value
| Type | Description | 
|---|---|
| int | 
SimulationMinLatency
Minimum simulated latency (in milliseconds)
Declaration
public int SimulationMinLatencyField Value
| Type | Description | 
|---|---|
| int | 
SimulationPacketLossChance
Chance of packet loss when simulation enabled. value in percents (1 - 100).
Declaration
public int SimulationPacketLossChanceField Value
| Type | Description | 
|---|---|
| int | 
Statistics
Statistics of all connections
Declaration
public readonly NetStatistics StatisticsField Value
| Type | Description | 
|---|---|
| NetStatistics | 
UnconnectedMessagesEnabled
Enable messages receiving without connection. (with SendUnconnectedMessage method)
Declaration
public bool UnconnectedMessagesEnabledField Value
| Type | Description | 
|---|---|
| bool | 
UnsyncedDeliveryEvent
If true - delivery event will be called from "receive" thread immediately otherwise on PollEvents call
Declaration
public bool UnsyncedDeliveryEventField Value
| Type | Description | 
|---|---|
| bool | 
UnsyncedEvents
Events automatically will be called without PollEvents method from another thread
Declaration
public bool UnsyncedEventsField Value
| Type | Description | 
|---|---|
| bool | 
UnsyncedReceiveEvent
If true - receive event will be called from "receive" thread immediately otherwise on PollEvents call
Declaration
public bool UnsyncedReceiveEventField Value
| Type | Description | 
|---|---|
| bool | 
UpdateTime
Library logic update and send period in milliseconds Lowest values in Windows doesn't change much because of Thread.Sleep precision To more frequent sends (or sends tied to your game logic) use TriggerUpdate()
Declaration
public int UpdateTimeField Value
| Type | Description | 
|---|---|
| int | 
UseNativeSockets
Experimental feature mostly for servers. Only for Windows/Linux use direct socket calls for send/receive to drastically increase speed and reduce GC pressure
Declaration
public bool UseNativeSocketsField Value
| Type | Description | 
|---|---|
| bool | 
UseSafeMtu
Sets initial MTU to lowest possible value according to RFC1191 (576 bytes)
Declaration
public bool UseSafeMtuField Value
| Type | Description | 
|---|---|
| bool | 
Properties
ChannelsCount
QoS channel count per message type (value must be between 1 and 64 channels)
Declaration
public byte ChannelsCount { get; set; }Property Value
| Type | Description | 
|---|---|
| byte | 
ConnectedPeerList
Returns connected peers list (with internal cached list)
Declaration
public List<NetPeer> ConnectedPeerList { get; }Property Value
| Type | Description | 
|---|---|
| List<NetPeer> | 
ConnectedPeersCount
Returns connected peers count
Declaration
public int ConnectedPeersCount { get; }Property Value
| Type | Description | 
|---|---|
| int | 
ExtraPacketSizeForLayer
Declaration
public int ExtraPacketSizeForLayer { get; }Property Value
| Type | Description | 
|---|---|
| int | 
FirstPeer
First peer. Useful for Client mode
Declaration
public NetPeer FirstPeer { get; }Property Value
| Type | Description | 
|---|---|
| NetPeer | 
IsRunning
Returns true if socket listening and update thread is running
Declaration
public bool IsRunning { get; }Property Value
| Type | Description | 
|---|---|
| bool | 
LocalPort
Local EndPoint (host and port)
Declaration
public int LocalPort { get; }Property Value
| Type | Description | 
|---|---|
| int | 
PoolCount
Declaration
public int PoolCount { get; }Property Value
| Type | Description | 
|---|---|
| int | 
Ttl
Declaration
public short Ttl { get; }Property Value
| Type | Description | 
|---|---|
| short | 
Methods
Connect(IPEndPoint, NetDataWriter)
Connect to remote host
Declaration
public NetPeer Connect(IPEndPoint target, NetDataWriter connectionData)Parameters
| Type | Name | Description | 
|---|---|---|
| IPEndPoint | target | Server end point (ip and port) | 
| NetDataWriter | connectionData | Additional data for remote peer | 
Returns
| Type | Description | 
|---|---|
| NetPeer | New NetPeer if new connection, Old NetPeer if already connected, null peer if there is ConnectionRequest awaiting | 
Exceptions
| Type | Condition | 
|---|---|
| InvalidOperationException | Manager is not running. Call Start() | 
Connect(IPEndPoint, string)
Connect to remote host
Declaration
public NetPeer Connect(IPEndPoint target, string key)Parameters
| Type | Name | Description | 
|---|---|---|
| IPEndPoint | target | Server end point (ip and port) | 
| string | key | Connection key | 
Returns
| Type | Description | 
|---|---|
| NetPeer | New NetPeer if new connection, Old NetPeer if already connected, null peer if there is ConnectionRequest awaiting | 
Exceptions
| Type | Condition | 
|---|---|
| InvalidOperationException | Manager is not running. Call Start() | 
Connect(string, int, NetDataWriter)
Connect to remote host
Declaration
public NetPeer Connect(string address, int port, NetDataWriter connectionData)Parameters
| Type | Name | Description | 
|---|---|---|
| string | address | Server IP or hostname | 
| int | port | Server Port | 
| NetDataWriter | connectionData | Additional data for remote peer | 
Returns
| Type | Description | 
|---|---|
| NetPeer | New NetPeer if new connection, Old NetPeer if already connected, null peer if there is ConnectionRequest awaiting | 
Exceptions
| Type | Condition | 
|---|---|
| InvalidOperationException | Manager is not running. Call Start() | 
Connect(string, int, string)
Connect to remote host
Declaration
public NetPeer Connect(string address, int port, string key)Parameters
| Type | Name | Description | 
|---|---|---|
| string | address | Server IP or hostname | 
| int | port | Server Port | 
| string | key | Connection key | 
Returns
| Type | Description | 
|---|---|
| NetPeer | New NetPeer if new connection, Old NetPeer if already connected, null peer if there is ConnectionRequest awaiting | 
Exceptions
| Type | Condition | 
|---|---|
| InvalidOperationException | Manager is not running. Call Start() | 
CreateNtpRequest(IPEndPoint)
Create the requests for NTP server
Declaration
public void CreateNtpRequest(IPEndPoint endPoint)Parameters
| Type | Name | Description | 
|---|---|---|
| IPEndPoint | endPoint | NTP Server address. | 
CreateNtpRequest(string)
Create the requests for NTP server (default port)
Declaration
public void CreateNtpRequest(string ntpServerAddress)Parameters
| Type | Name | Description | 
|---|---|---|
| string | ntpServerAddress | NTP Server address. | 
CreateNtpRequest(string, int)
Create the requests for NTP server
Declaration
public void CreateNtpRequest(string ntpServerAddress, int port)Parameters
| Type | Name | Description | 
|---|---|---|
| string | ntpServerAddress | NTP Server address. | 
| int | port | port | 
DisconnectAll()
Disconnect all peers without any additional data
Declaration
public void DisconnectAll()DisconnectAll(byte[], int, int)
Disconnect all peers with shutdown message
Declaration
public void DisconnectAll(byte[] data, int start, int count)Parameters
| Type | Name | Description | 
|---|---|---|
| byte[] | data | Data to send (must be less or equal MTU) | 
| int | start | Data start | 
| int | count | Data count | 
DisconnectPeer(NetPeer)
Disconnect peer from server
Declaration
public void DisconnectPeer(NetPeer peer)Parameters
| Type | Name | Description | 
|---|---|---|
| NetPeer | peer | peer to disconnect | 
DisconnectPeer(NetPeer, NetDataWriter)
Disconnect peer from server and send additional data (Size must be less or equal MTU - 8)
Declaration
public void DisconnectPeer(NetPeer peer, NetDataWriter writer)Parameters
| Type | Name | Description | 
|---|---|---|
| NetPeer | peer | peer to disconnect | 
| NetDataWriter | writer | additional data | 
DisconnectPeer(NetPeer, byte[])
Disconnect peer from server and send additional data (Size must be less or equal MTU - 8)
Declaration
public void DisconnectPeer(NetPeer peer, byte[] data)Parameters
| Type | Name | Description | 
|---|---|---|
| NetPeer | peer | peer to disconnect | 
| byte[] | data | additional data | 
DisconnectPeer(NetPeer, byte[], int, int)
Disconnect peer from server and send additional data (Size must be less or equal MTU - 8)
Declaration
public void DisconnectPeer(NetPeer peer, byte[] data, int start, int count)Parameters
| Type | Name | Description | 
|---|---|---|
| NetPeer | peer | peer to disconnect | 
| byte[] | data | additional data | 
| int | start | data start | 
| int | count | data length | 
DisconnectPeerForce(NetPeer)
Immediately disconnect peer from server without additional data
Declaration
public void DisconnectPeerForce(NetPeer peer)Parameters
| Type | Name | Description | 
|---|---|---|
| NetPeer | peer | peer to disconnect | 
GetEnumerator()
Declaration
public NetManager.NetPeerEnumerator GetEnumerator()Returns
| Type | Description | 
|---|---|
| NetManager.NetPeerEnumerator | 
GetPeerById(int)
Gets peer by peer id
Declaration
public NetPeer GetPeerById(int id)Parameters
| Type | Name | Description | 
|---|---|---|
| int | id | id of peer | 
Returns
| Type | Description | 
|---|---|
| NetPeer | Peer if peer with id exist, otherwise null | 
GetPeersCount(ConnectionState)
Return peers count with connection state
Declaration
public int GetPeersCount(ConnectionState peerState)Parameters
| Type | Name | Description | 
|---|---|---|
| ConnectionState | peerState | peer connection state (you can use as bit flags) | 
Returns
| Type | Description | 
|---|---|
| int | peers count | 
GetPeersNonAlloc(List<NetPeer>, ConnectionState)
Get copy of peers (without allocations)
Declaration
public void GetPeersNonAlloc(List<NetPeer> peers, ConnectionState peerState)Parameters
| Type | Name | Description | 
|---|---|---|
| List<NetPeer> | peers | List that will contain result | 
| ConnectionState | peerState | State of peers | 
ManualUpdate(int)
Update and send logic. Use this only when NetManager started in manual mode
Declaration
public void ManualUpdate(int elapsedMilliseconds)Parameters
| Type | Name | Description | 
|---|---|---|
| int | elapsedMilliseconds | elapsed milliseconds since last update call | 
PollEvents()
Receive all pending events. Call this in game update code In Manual mode it will call also socket Receive (which can be slow)
Declaration
public void PollEvents()SendBroadcast(NetDataWriter, int)
Declaration
public bool SendBroadcast(NetDataWriter writer, int port)Parameters
| Type | Name | Description | 
|---|---|---|
| NetDataWriter | writer | |
| int | port | 
Returns
| Type | Description | 
|---|---|
| bool | 
SendBroadcast(byte[], int)
Declaration
public bool SendBroadcast(byte[] data, int port)Parameters
| Type | Name | Description | 
|---|---|---|
| byte[] | data | |
| int | port | 
Returns
| Type | Description | 
|---|---|
| bool | 
SendBroadcast(byte[], int, int, int)
Declaration
public bool SendBroadcast(byte[] data, int start, int length, int port)Parameters
| Type | Name | Description | 
|---|---|---|
| byte[] | data | |
| int | start | |
| int | length | |
| int | port | 
Returns
| Type | Description | 
|---|---|
| bool | 
SendToAll(NetDataWriter, DeliveryMethod)
Send data to all connected peers (channel - 0)
Declaration
public void SendToAll(NetDataWriter writer, DeliveryMethod options)Parameters
| Type | Name | Description | 
|---|---|---|
| NetDataWriter | writer | DataWriter with data | 
| DeliveryMethod | options | Send options (reliable, unreliable, etc.) | 
SendToAll(NetDataWriter, DeliveryMethod, NetPeer)
Send data to all connected peers (channel - 0)
Declaration
public void SendToAll(NetDataWriter writer, DeliveryMethod options, NetPeer excludePeer)Parameters
| Type | Name | Description | 
|---|---|---|
| NetDataWriter | writer | DataWriter with data | 
| DeliveryMethod | options | Send options (reliable, unreliable, etc.) | 
| NetPeer | excludePeer | Excluded peer | 
SendToAll(NetDataWriter, byte, DeliveryMethod)
Send data to all connected peers
Declaration
public void SendToAll(NetDataWriter writer, byte channelNumber, DeliveryMethod options)Parameters
| Type | Name | Description | 
|---|---|---|
| NetDataWriter | writer | DataWriter with data | 
| byte | channelNumber | Number of channel (from 0 to channelsCount - 1) | 
| DeliveryMethod | options | Send options (reliable, unreliable, etc.) | 
SendToAll(NetDataWriter, byte, DeliveryMethod, NetPeer)
Send data to all connected peers
Declaration
public void SendToAll(NetDataWriter writer, byte channelNumber, DeliveryMethod options, NetPeer excludePeer)Parameters
| Type | Name | Description | 
|---|---|---|
| NetDataWriter | writer | DataWriter with data | 
| byte | channelNumber | Number of channel (from 0 to channelsCount - 1) | 
| DeliveryMethod | options | Send options (reliable, unreliable, etc.) | 
| NetPeer | excludePeer | Excluded peer | 
SendToAll(byte[], DeliveryMethod)
Send data to all connected peers (channel - 0)
Declaration
public void SendToAll(byte[] data, DeliveryMethod options)Parameters
| Type | Name | Description | 
|---|---|---|
| byte[] | data | Data | 
| DeliveryMethod | options | Send options (reliable, unreliable, etc.) | 
SendToAll(byte[], DeliveryMethod, NetPeer)
Send data to all connected peers (channel - 0)
Declaration
public void SendToAll(byte[] data, DeliveryMethod options, NetPeer excludePeer)Parameters
| Type | Name | Description | 
|---|---|---|
| byte[] | data | Data | 
| DeliveryMethod | options | Send options (reliable, unreliable, etc.) | 
| NetPeer | excludePeer | Excluded peer | 
SendToAll(byte[], byte, DeliveryMethod)
Send data to all connected peers
Declaration
public void SendToAll(byte[] data, byte channelNumber, DeliveryMethod options)Parameters
| Type | Name | Description | 
|---|---|---|
| byte[] | data | Data | 
| byte | channelNumber | Number of channel (from 0 to channelsCount - 1) | 
| DeliveryMethod | options | Send options (reliable, unreliable, etc.) | 
SendToAll(byte[], byte, DeliveryMethod, NetPeer)
Send data to all connected peers
Declaration
public void SendToAll(byte[] data, byte channelNumber, DeliveryMethod options, NetPeer excludePeer)Parameters
| Type | Name | Description | 
|---|---|---|
| byte[] | data | Data | 
| byte | channelNumber | Number of channel (from 0 to channelsCount - 1) | 
| DeliveryMethod | options | Send options (reliable, unreliable, etc.) | 
| NetPeer | excludePeer | Excluded peer | 
SendToAll(byte[], int, int, DeliveryMethod)
Send data to all connected peers (channel - 0)
Declaration
public void SendToAll(byte[] data, int start, int length, DeliveryMethod options)Parameters
| Type | Name | Description | 
|---|---|---|
| byte[] | data | Data | 
| int | start | Start of data | 
| int | length | Length of data | 
| DeliveryMethod | options | Send options (reliable, unreliable, etc.) | 
SendToAll(byte[], int, int, DeliveryMethod, NetPeer)
Send data to all connected peers (channel - 0)
Declaration
public void SendToAll(byte[] data, int start, int length, DeliveryMethod options, NetPeer excludePeer)Parameters
| Type | Name | Description | 
|---|---|---|
| byte[] | data | Data | 
| int | start | Start of data | 
| int | length | Length of data | 
| DeliveryMethod | options | Send options (reliable, unreliable, etc.) | 
| NetPeer | excludePeer | Excluded peer | 
SendToAll(byte[], int, int, byte, DeliveryMethod)
Send data to all connected peers
Declaration
public void SendToAll(byte[] data, int start, int length, byte channelNumber, DeliveryMethod options)Parameters
| Type | Name | Description | 
|---|---|---|
| byte[] | data | Data | 
| int | start | Start of data | 
| int | length | Length of data | 
| byte | channelNumber | Number of channel (from 0 to channelsCount - 1) | 
| DeliveryMethod | options | Send options (reliable, unreliable, etc.) | 
SendToAll(byte[], int, int, byte, DeliveryMethod, NetPeer)
Send data to all connected peers
Declaration
public void SendToAll(byte[] data, int start, int length, byte channelNumber, DeliveryMethod options, NetPeer excludePeer)Parameters
| Type | Name | Description | 
|---|---|---|
| byte[] | data | Data | 
| int | start | Start of data | 
| int | length | Length of data | 
| byte | channelNumber | Number of channel (from 0 to channelsCount - 1) | 
| DeliveryMethod | options | Send options (reliable, unreliable, etc.) | 
| NetPeer | excludePeer | Excluded peer | 
SendToAll(ReadOnlySpan<byte>, DeliveryMethod)
Send data to all connected peers (channel - 0)
Declaration
public void SendToAll(ReadOnlySpan<byte> data, DeliveryMethod options)Parameters
| Type | Name | Description | 
|---|---|---|
| ReadOnlySpan<byte> | data | Data | 
| DeliveryMethod | options | Send options (reliable, unreliable, etc.) | 
SendToAll(ReadOnlySpan<byte>, DeliveryMethod, NetPeer)
Send data to all connected peers (channel - 0)
Declaration
public void SendToAll(ReadOnlySpan<byte> data, DeliveryMethod options, NetPeer excludePeer)Parameters
| Type | Name | Description | 
|---|---|---|
| ReadOnlySpan<byte> | data | Data | 
| DeliveryMethod | options | Send options (reliable, unreliable, etc.) | 
| NetPeer | excludePeer | Excluded peer | 
SendToAll(ReadOnlySpan<byte>, byte, DeliveryMethod, NetPeer)
Send data to all connected peers
Declaration
public void SendToAll(ReadOnlySpan<byte> data, byte channelNumber, DeliveryMethod options, NetPeer excludePeer)Parameters
| Type | Name | Description | 
|---|---|---|
| ReadOnlySpan<byte> | data | Data | 
| byte | channelNumber | Number of channel (from 0 to channelsCount - 1) | 
| DeliveryMethod | options | Send options (reliable, unreliable, etc.) | 
| NetPeer | excludePeer | Excluded peer | 
SendUnconnectedMessage(NetDataWriter, IPEndPoint)
Send message without connection
Declaration
public bool SendUnconnectedMessage(NetDataWriter writer, IPEndPoint remoteEndPoint)Parameters
| Type | Name | Description | 
|---|---|---|
| NetDataWriter | writer | Data serializer | 
| IPEndPoint | remoteEndPoint | Packet destination | 
Returns
| Type | Description | 
|---|---|
| bool | Operation result | 
SendUnconnectedMessage(NetDataWriter, string, int)
Send message without connection. WARNING This method allocates a new IPEndPoint object and synchronously makes a DNS request. If you're calling this method every frame it will be much faster to just cache the IPEndPoint.
Declaration
public bool SendUnconnectedMessage(NetDataWriter writer, string address, int port)Parameters
| Type | Name | Description | 
|---|---|---|
| NetDataWriter | writer | Data serializer | 
| string | address | Packet destination IP or hostname | 
| int | port | Packet destination port | 
Returns
| Type | Description | 
|---|---|
| bool | Operation result | 
SendUnconnectedMessage(byte[], int, int, IPEndPoint)
Send message without connection
Declaration
public bool SendUnconnectedMessage(byte[] message, int start, int length, IPEndPoint remoteEndPoint)Parameters
| Type | Name | Description | 
|---|---|---|
| byte[] | message | Raw data | 
| int | start | data start | 
| int | length | data length | 
| IPEndPoint | remoteEndPoint | Packet destination | 
Returns
| Type | Description | 
|---|---|
| bool | Operation result | 
SendUnconnectedMessage(byte[], IPEndPoint)
Send message without connection
Declaration
public bool SendUnconnectedMessage(byte[] message, IPEndPoint remoteEndPoint)Parameters
| Type | Name | Description | 
|---|---|---|
| byte[] | message | Raw data | 
| IPEndPoint | remoteEndPoint | Packet destination | 
Returns
| Type | Description | 
|---|---|
| bool | Operation result | 
Start()
Start logic thread and listening on available port
Declaration
public bool Start()Returns
| Type | Description | 
|---|---|
| bool | 
Start(int)
Start logic thread and listening on selected port
Declaration
public bool Start(int port)Parameters
| Type | Name | Description | 
|---|---|---|
| int | port | port to listen | 
Returns
| Type | Description | 
|---|---|
| bool | 
Start(IPAddress, IPAddress, int)
Start logic thread and listening on selected port
Declaration
public bool Start(IPAddress addressIPv4, IPAddress addressIPv6, int port)Parameters
| Type | Name | Description | 
|---|---|---|
| IPAddress | addressIPv4 | bind to specific ipv4 address | 
| IPAddress | addressIPv6 | bind to specific ipv6 address | 
| int | port | port to listen | 
Returns
| Type | Description | 
|---|---|
| bool | 
Start(IPAddress, IPAddress, int, bool)
Start logic thread and listening on selected port
Declaration
public bool Start(IPAddress addressIPv4, IPAddress addressIPv6, int port, bool manualMode)Parameters
| Type | Name | Description | 
|---|---|---|
| IPAddress | addressIPv4 | bind to specific ipv4 address | 
| IPAddress | addressIPv6 | bind to specific ipv6 address | 
| int | port | port to listen | 
| bool | manualMode | mode of library | 
Returns
| Type | Description | 
|---|---|
| bool | 
Start(string, string, int)
Start logic thread and listening on selected port
Declaration
public bool Start(string addressIPv4, string addressIPv6, int port)Parameters
| Type | Name | Description | 
|---|---|---|
| string | addressIPv4 | bind to specific ipv4 address | 
| string | addressIPv6 | bind to specific ipv6 address | 
| int | port | port to listen | 
Returns
| Type | Description | 
|---|---|
| bool | 
StartInManualMode(int)
Start in manual mode and listening on selected port In this mode you should use ManualReceive (without PollEvents) for receive packets and ManualUpdate(...) for update and send packets This mode useful mostly for single-threaded servers
Declaration
public bool StartInManualMode(int port)Parameters
| Type | Name | Description | 
|---|---|---|
| int | port | port to listen | 
Returns
| Type | Description | 
|---|---|
| bool | 
StartInManualMode(IPAddress, IPAddress, int)
Start in manual mode and listening on selected port In this mode you should use ManualReceive (without PollEvents) for receive packets and ManualUpdate(...) for update and send packets This mode useful mostly for single-threaded servers
Declaration
public bool StartInManualMode(IPAddress addressIPv4, IPAddress addressIPv6, int port)Parameters
| Type | Name | Description | 
|---|---|---|
| IPAddress | addressIPv4 | bind to specific ipv4 address | 
| IPAddress | addressIPv6 | bind to specific ipv6 address | 
| int | port | port to listen | 
Returns
| Type | Description | 
|---|---|
| bool | 
StartInManualMode(string, string, int)
Start in manual mode and listening on selected port In this mode you should use ManualReceive (without PollEvents) for receive packets and ManualUpdate(...) for update and send packets This mode useful mostly for single-threaded servers
Declaration
public bool StartInManualMode(string addressIPv4, string addressIPv6, int port)Parameters
| Type | Name | Description | 
|---|---|---|
| string | addressIPv4 | bind to specific ipv4 address | 
| string | addressIPv6 | bind to specific ipv6 address | 
| int | port | port to listen | 
Returns
| Type | Description | 
|---|---|
| bool | 
Stop()
Force closes connection and stop all threads.
Declaration
public void Stop()Stop(bool)
Force closes connection and stop all threads.
Declaration
public void Stop(bool sendDisconnectMessages)Parameters
| Type | Name | Description | 
|---|---|---|
| bool | sendDisconnectMessages | Send disconnect messages | 
TriggerUpdate()
Triggers update and send logic immediately (works asynchronously)
Declaration
public void TriggerUpdate()TryGetPeerById(int, out NetPeer)
Gets peer by peer id
Declaration
public bool TryGetPeerById(int id, out NetPeer peer)Parameters
| Type | Name | Description | 
|---|---|---|
| int | id | id of peer | 
| NetPeer | peer | resulting peer | 
Returns
| Type | Description | 
|---|---|
| bool | True if peer with id exist, otherwise false |