Struct NetworkDriver
The NetworkDriver is an implementation of Virtual Connections over any transport.
Basic usage:
var driver = NetworkDriver.Create();
Inherited Members
Namespace: Unity.Networking.Transport
Syntax
public struct NetworkDriver : IDisposable
Constructors
NetworkDriver(INetworkInterface)
Declaration
public NetworkDriver(INetworkInterface netIf)
Parameters
| Type | Name | Description | 
|---|---|---|
| INetworkInterface | netIf | 
NetworkDriver(INetworkInterface, INetworkParameter[])
Declaration
[Obsolete("Use NetworkDriver(INetworkInterface, NetworkSettings) instead", false)]
public NetworkDriver(INetworkInterface netIf, params INetworkParameter[] param)
Parameters
| Type | Name | Description | 
|---|---|---|
| INetworkInterface | netIf | |
| INetworkParameter[] | param | 
NetworkDriver(INetworkInterface, NetworkSettings)
Declaration
public NetworkDriver(INetworkInterface netIf, NetworkSettings settings)
Parameters
| Type | Name | Description | 
|---|---|---|
| INetworkInterface | netIf | |
| NetworkSettings | settings | 
Properties
Bound
Declaration
public readonly bool Bound { get; }
Property Value
| Type | Description | 
|---|---|
| Boolean | 
IsCreated
Returns if NetworkDriver has been created
Declaration
public readonly bool IsCreated { get; }
Property Value
| Type | Description | 
|---|---|
| Boolean | 
LastUpdateTime
Gets the value of the last update time
Declaration
public readonly long LastUpdateTime { get; }
Property Value
| Type | Description | 
|---|---|
| Int64 | 
Listening
Gets or sets if the driver is Listening
Declaration
public bool Listening { get; }
Property Value
| Type | Description | 
|---|---|
| Boolean | 
ReceiveErrorCode
Gets or sets Receive Error Code
Declaration
public int ReceiveErrorCode { get; }
Property Value
| Type | Description | 
|---|---|
| Int32 | 
Methods
AbortSend(DataStreamWriter)
Aborts a asynchronous send.
Declaration
public void AbortSend(DataStreamWriter writer)
Parameters
| Type | Name | Description | 
|---|---|---|
| DataStreamWriter | writer | If you require the payload to be of certain size.  | 
Exceptions
| Type | Condition | 
|---|---|
| InvalidOperationException | If endsend is called with a matching BeginSend call.  | 
| InvalidOperationException | If the connection got closed between the call of being and end send.  | 
Accept()
Checks to see if there are any new connections to Accept.
Declaration
public NetworkConnection Accept()
Returns
| Type | Description | 
|---|---|
| NetworkConnection | If accept fails it returns a default NetworkConnection.  | 
BeginSend(NetworkConnection, out DataStreamWriter, Int32)
Acquires a DataStreamWriter for starting a asynchronous send.
Declaration
public int BeginSend(NetworkConnection id, out DataStreamWriter writer, int requiredPayloadSize = 0)
Parameters
| Type | Name | Description | 
|---|---|---|
| NetworkConnection | id | The NetworkConnection id to write through  | 
| DataStreamWriter | writer | A DataStreamWriter to write to  | 
| Int32 | requiredPayloadSize | If you require the payload to be of certain size  | 
Returns
| Type | Description | 
|---|---|
| Int32 | Returns Success on a successful acquire. Otherwise returns an StatusCode indicating the error.  | 
Remarks
Will throw a InvalidOperationException if the connection is in a Connecting state.
BeginSend(NetworkPipeline, NetworkConnection, out DataStreamWriter, Int32)
Acquires a DataStreamWriter for starting a asynchronous send.
Declaration
public int BeginSend(NetworkPipeline pipe, NetworkConnection id, out DataStreamWriter writer, int requiredPayloadSize = 0)
Parameters
| Type | Name | Description | 
|---|---|---|
| NetworkPipeline | pipe | The NetworkPipeline to write through  | 
| NetworkConnection | id | The NetworkConnection id to write through  | 
| DataStreamWriter | writer | A DataStreamWriter to write to  | 
| Int32 | requiredPayloadSize | If you require the payload to be of certain size  | 
Returns
| Type | Description | 
|---|---|
| Int32 | Returns Success on a successful acquire. Otherwise returns an StatusCode indicating the error.  | 
Remarks
Will throw a InvalidOperationException if the connection is in a Connecting state.
Bind(NetworkEndPoint)
Bind the driver to a endpoint.
Declaration
public int Bind(NetworkEndPoint endpoint)
Parameters
| Type | Name | Description | 
|---|---|---|
| NetworkEndPoint | endpoint | The endpoint to bind to.  | 
Returns
| Type | Description | 
|---|---|
| Int32 | Returns 0 on success. And a negative value if a error occured.  | 
Exceptions
| Type | Condition | 
|---|---|
| InvalidOperationException | If the driver is not created properly  | 
| InvalidOperationException | If bind is called more then once on the driver  | 
| InvalidOperationException | If bind is called after a connection has already been established  | 
Connect(NetworkEndPoint)
Connects the driver to a endpoint
Declaration
public NetworkConnection Connect(NetworkEndPoint endpoint)
Parameters
| Type | Name | Description | 
|---|---|---|
| NetworkEndPoint | endpoint | 
Returns
| Type | Description | 
|---|---|
| NetworkConnection | If connect fails it returns a default NetworkConnection.  | 
Exceptions
| Type | Condition | 
|---|---|
| InvalidOperationException | If the driver is not created properly  | 
Create()
Helper function for creating a NetworkDriver.
Declaration
public static NetworkDriver Create()
Returns
| Type | Description | 
|---|---|
| NetworkDriver | 
Create(INetworkParameter[])
Declaration
[Obsolete("Use Create(NetworkSettings) instead", false)]
public static NetworkDriver Create(params INetworkParameter[] param)
Parameters
| Type | Name | Description | 
|---|---|---|
| INetworkParameter[] | param | 
Returns
| Type | Description | 
|---|---|
| NetworkDriver | 
Create(NetworkSettings)
Helper function for creating a NetworkDriver.
Declaration
public static NetworkDriver Create(NetworkSettings settings)
Parameters
| Type | Name | Description | 
|---|---|---|
| NetworkSettings | settings | 
Returns
| Type | Description | 
|---|---|
| NetworkDriver | 
Exceptions
| Type | Condition | 
|---|---|
| InvalidOperationException | 
Create<N>(N)
Helper function for creating a NetworkDriver.
Declaration
public static NetworkDriver Create<N>(N networkInterface)
    where N : INetworkInterface
Parameters
| Type | Name | Description | 
|---|---|---|
| N | networkInterface | The custom interface to use.  | 
Returns
| Type | Description | 
|---|---|
| NetworkDriver | 
Type Parameters
| Name | Description | 
|---|---|
| N | 
Create<N>(N, NetworkSettings)
Helper function for creating a NetworkDriver.
Declaration
public static NetworkDriver Create<N>(N networkInterface, NetworkSettings settings)
    where N : INetworkInterface
Parameters
| Type | Name | Description | 
|---|---|---|
| N | networkInterface | The custom interface to use.  | 
| NetworkSettings | settings | The   | 
Returns
| Type | Description | 
|---|---|
| NetworkDriver | 
Type Parameters
| Name | Description | 
|---|---|
| N | 
CreatePipeline(Type[])
Create a new pipeline.
Declaration
public NetworkPipeline CreatePipeline(params Type[] stages)
Parameters
| Type | Name | Description | 
|---|---|---|
| Type[] | stages | An array of stages the pipeline should contain.  | 
Returns
| Type | Description | 
|---|---|
| NetworkPipeline | 
Exceptions
| Type | Condition | 
|---|---|
| InvalidOperationException | If the driver is not created properly  | 
| InvalidOperationException | A connection has already been established  | 
Disconnect(NetworkConnection)
Disconnects a NetworkConnection
Declaration
public int Disconnect(NetworkConnection id)
Parameters
| Type | Name | Description | 
|---|---|---|
| NetworkConnection | id | The NetworkConnection we want to Disconnect.  | 
Returns
| Type | Description | 
|---|---|
| Int32 | Return 0 on success.  | 
Dispose()
Declaration
public void Dispose()
Implements
EndSend(DataStreamWriter)
Ends a asynchronous send.
Declaration
public int EndSend(DataStreamWriter writer)
Parameters
| Type | Name | Description | 
|---|---|---|
| DataStreamWriter | writer | If you require the payload to be of certain size.  | 
Returns
| Type | Description | 
|---|---|
| Int32 | The length of the buffer sent if nothing went wrong.  | 
Exceptions
| Type | Condition | 
|---|---|
| InvalidOperationException | If endsend is called with a matching BeginSend call.  | 
| InvalidOperationException | If the connection got closed between the call of being and end send.  | 
GetConnectionState(NetworkConnection)
Gets the connection state using the specified NetworkConnection
Declaration
public NetworkConnection.State GetConnectionState(NetworkConnection con)
Parameters
| Type | Name | Description | 
|---|---|---|
| NetworkConnection | con | The connection  | 
Returns
| Type | Description | 
|---|---|
| NetworkConnection.State | The network connection state  | 
GetEventQueueSizeForConnection(NetworkConnection)
Returns the size of the EventQueue for a specific connection
Declaration
public int GetEventQueueSizeForConnection(NetworkConnection connectionId)
Parameters
| Type | Name | Description | 
|---|---|---|
| NetworkConnection | connectionId | Connection for which to get the event queue size.  | 
Returns
| Type | Description | 
|---|---|
| Int32 | If the connection is valid it returns the size of the event queue otherwise it returns 0.  | 
GetPipelineBuffers(NetworkPipeline, NetworkPipelineStageId, NetworkConnection, out NativeArray<Byte>, out NativeArray<Byte>, out NativeArray<Byte>)
Returns the PipelineBuffers for a specific pipeline and stage.
Declaration
public void GetPipelineBuffers(NetworkPipeline pipeline, NetworkPipelineStageId stageId, NetworkConnection connection, out NativeArray<byte> readProcessingBuffer, out NativeArray<byte> writeProcessingBuffer, out NativeArray<byte> sharedBuffer)
Parameters
| Type | Name | Description | 
|---|---|---|
| NetworkPipeline | pipeline | Pipeline for which to get the buffers.  | 
| NetworkPipelineStageId | stageId | Pipeline for which to get the buffers.  | 
| NetworkConnection | connection | Connection for which to the buffers.  | 
| NativeArray<Byte> | readProcessingBuffer | The buffer used to process read (receive) operations.  | 
| NativeArray<Byte> | writeProcessingBuffer | The buffer used to process write (send) operations.  | 
| NativeArray<Byte> | sharedBuffer | The buffer containing the internal state of the pipeline stage.  | 
Exceptions
| Type | Condition | 
|---|---|
| InvalidOperationException | If the the connection is invalid.  | 
Listen()
Set the driver to Listen for incoming connections
Declaration
public int Listen()
Returns
| Type | Description | 
|---|---|
| Int32 | Returns 0 on success.  | 
Exceptions
| Type | Condition | 
|---|---|
| InvalidOperationException | If the driver is not created properly  | 
| InvalidOperationException | If listen is called more then once on the driver  | 
| InvalidOperationException | If bind has not been called before calling Listen.  | 
LocalEndPoint()
Returns local NetworkEndPoint
Declaration
public NetworkEndPoint LocalEndPoint()
Returns
| Type | Description | 
|---|---|
| NetworkEndPoint | The network end point  | 
MaxHeaderSize(NetworkPipeline)
Max headersize including optional NetworkPipeline
Declaration
public int MaxHeaderSize(NetworkPipeline pipe)
Parameters
| Type | Name | Description | 
|---|---|---|
| NetworkPipeline | pipe | The pipeline for which to get the maximum header size.  | 
Returns
| Type | Description | 
|---|---|
| Int32 | The maximum header size.  | 
PopEvent(out NetworkConnection, out DataStreamReader)
Declaration
public NetworkEvent.Type PopEvent(out NetworkConnection con, out DataStreamReader reader)
Parameters
| Type | Name | Description | 
|---|---|---|
| NetworkConnection | con | |
| DataStreamReader | reader | 
Returns
| Type | Description | 
|---|---|
| NetworkEvent.Type | 
PopEvent(out NetworkConnection, out DataStreamReader, out NetworkPipeline)
Pops an event
Declaration
public NetworkEvent.Type PopEvent(out NetworkConnection con, out DataStreamReader reader, out NetworkPipeline pipeline)
Parameters
| Type | Name | Description | 
|---|---|---|
| NetworkConnection | con | Connection on which the event occured.  | 
| DataStreamReader | reader | Stream reader for the event's data.  | 
| NetworkPipeline | pipeline | Pipeline on which the event was received.  | 
Returns
| Type | Description | 
|---|---|
| NetworkEvent.Type | The event's type  | 
PopEventForConnection(NetworkConnection, out DataStreamReader)
Declaration
public NetworkEvent.Type PopEventForConnection(NetworkConnection connectionId, out DataStreamReader reader)
Parameters
| Type | Name | Description | 
|---|---|---|
| NetworkConnection | connectionId | |
| DataStreamReader | reader | 
Returns
| Type | Description | 
|---|---|
| NetworkEvent.Type | 
PopEventForConnection(NetworkConnection, out DataStreamReader, out NetworkPipeline)
Pops an event for a specific connection
Declaration
public NetworkEvent.Type PopEventForConnection(NetworkConnection connectionId, out DataStreamReader reader, out NetworkPipeline pipeline)
Parameters
| Type | Name | Description | 
|---|---|---|
| NetworkConnection | connectionId | Connection for which to pop the next event.  | 
| DataStreamReader | reader | Stream reader for the event's data.  | 
| NetworkPipeline | pipeline | Pipeline on which the event was received.  | 
Returns
| Type | Description | 
|---|---|
| NetworkEvent.Type | The event's type  | 
RemoteEndPoint(NetworkConnection)
Declaration
public NetworkEndPoint RemoteEndPoint(NetworkConnection id)
Parameters
| Type | Name | Description | 
|---|---|---|
| NetworkConnection | id | 
Returns
| Type | Description | 
|---|---|
| NetworkEndPoint | 
ScheduleFlushSend(JobHandle)
Schedules flushing the sendqueue. Should be called in cases where you want the driver to send before the next ScheduleUpdate(JobHandle) is called.
Declaration
public JobHandle ScheduleFlushSend(JobHandle dep)
Parameters
| Type | Name | Description | 
|---|---|---|
| JobHandle | dep | Job on which to depend.  | 
Returns
| Type | Description | 
|---|---|
| JobHandle | The job handle  | 
ScheduleUpdate(JobHandle)
Schedules update for driver. This should be called once a frame.
Declaration
public JobHandle ScheduleUpdate(JobHandle dep = default(JobHandle))
Parameters
| Type | Name | Description | 
|---|---|---|
| JobHandle | dep | Job on which to depend.  | 
Returns
| Type | Description | 
|---|---|
| JobHandle | The update job's handle  | 
ToConcurrent()
Create a Concurrent Copy of the NetworkDriver.
Declaration
public NetworkDriver.Concurrent ToConcurrent()
Returns
| Type | Description | 
|---|---|
| NetworkDriver.Concurrent |