> For the complete documentation index, see [llms.txt](https://kinematicsoup.gitbook.io/reactor/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kinematicsoup.gitbook.io/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksrudpconnection.md).

# Class ksRUDPConnection

Namespace: [KS.Reactor.Client](/reactor/api-reference/ks.reactor.client.md)\
Assembly: KSUnity.dll

```csharp
public class ksRUDPConnection : ksConnection
```

#### Inheritance

[object](https://learn.microsoft.com/dotnet/api/system.object) ← [ksConnection](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksconnection.md) ← [ksRUDPConnection](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksrudpconnection.md)

#### Inherited Members

[ksConnection.OnDisconnect](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksconnection.md#KS_Reactor_Client_ksConnection_OnDisconnect), [ksConnection.m\_host](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksconnection.md#KS_Reactor_Client_ksConnection_m_host), [ksConnection.m\_port](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksconnection.md#KS_Reactor_Client_ksConnection_m_port), [ksConnection.Address](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksconnection.md#KS_Reactor_Client_ksConnection_Address), [ksConnection.ReadProgress](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksconnection.md#KS_Reactor_Client_ksConnection_ReadProgress), [ksConnection.WriteProgress](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksconnection.md#KS_Reactor_Client_ksConnection_WriteProgress), [ksConnection.IsConnected](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksconnection.md#KS_Reactor_Client_ksConnection_IsConnected), [ksConnection.Connect(string, ushort, ksConnection.ConnectHandler, object)](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksconnection.md#KS_Reactor_Client_ksConnection_Connect_System_String_System_UInt16_KS_Reactor_Client_ksConnection_ConnectHandler_System_Object_), [ksConnection.Disconnect(bool)](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksconnection.md#KS_Reactor_Client_ksConnection_Disconnect_System_Boolean_), [ksConnection.Read(ksStreamBuffer.Segment, ksConnection.IOHandler, object)](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksconnection.md#KS_Reactor_Client_ksConnection_Read_KS_Reactor_ksStreamBuffer_Segment_KS_Reactor_Client_ksConnection_IOHandler_System_Object_), [ksConnection.Write(ksStreamBuffer.Segment, ksConnection.IOHandler, object)](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksconnection.md#KS_Reactor_Client_ksConnection_Write_KS_Reactor_ksStreamBuffer_Segment_KS_Reactor_Client_ksConnection_IOHandler_System_Object_), [ksConnection.TryResolveHost(string, out IPAddress)](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksconnection.md#KS_Reactor_Client_ksConnection_TryResolveHost_System_String_System_Net_IPAddress__), [object.Equals(object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals\(system-object\)), [object.Equals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals\(system-object-system-object\)), [object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode), [object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype), [object.MemberwiseClone()](https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone), [object.ReferenceEquals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.referenceequals), [object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)

## Constructors

### ksRUDPConnection() <a href="#ks_reactor_client_ksrudpconnection__ctor" id="ks_reactor_client_ksrudpconnection__ctor"></a>

Constructor

```csharp
public ksRUDPConnection()
```

## Properties

### IsConnected <a href="#ks_reactor_client_ksrudpconnection_isconnected" id="ks_reactor_client_ksrudpconnection_isconnected"></a>

Check if a connection to the server is open.

```csharp
public override bool IsConnected { get; }
```

#### Property Value

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### ReadProgress <a href="#ks_reactor_client_ksrudpconnection_readprogress" id="ks_reactor_client_ksrudpconnection_readprogress"></a>

Get the progress of the current read operation.

```csharp
public override ksFrameInfo ReadProgress { get; }
```

#### Property Value

[ksFrameInfo](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksframeinfo.md)

### WriteProgress <a href="#ks_reactor_client_ksrudpconnection_writeprogress" id="ks_reactor_client_ksrudpconnection_writeprogress"></a>

Get the progress of the current write operation.

```csharp
public override ksFrameInfo WriteProgress { get; }
```

#### Property Value

[ksFrameInfo](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksframeinfo.md)

## Methods

### Connect(string, ushort, ConnectHandler, object) <a href="#ks_reactor_client_ksrudpconnection_connect_system_string_system_uint16_ks_reactor_client_ksconnectio" id="ks_reactor_client_ksrudpconnection_connect_system_string_system_uint16_ks_reactor_client_ksconnectio"></a>

Begin an asynchronous connection to a remote server accepting Reactor RUDP connections.

```csharp
public override void Connect(string host, ushort port, ksConnection.ConnectHandler callback, object asyncState = null)
```

#### Parameters

`host` [string](https://learn.microsoft.com/dotnet/api/system.string)

Remote host

`port` [ushort](https://learn.microsoft.com/dotnet/api/system.uint16)

Remote port

`callback` [ksConnection](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksconnection.md).[ConnectHandler](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksconnection/ks.reactor.client.ksconnection.connecthandler.md)

Callback which is invoked when the connection is established.

`asyncState` [object](https://learn.microsoft.com/dotnet/api/system.object)

User state to return in the callback.

### Disconnect(bool) <a href="#ks_reactor_client_ksrudpconnection_disconnect_system_boolean" id="ks_reactor_client_ksrudpconnection_disconnect_system_boolean"></a>

Disconnect from the remote server.

```csharp
public override void Disconnect(bool immediate)
```

#### Parameters

`immediate` [bool](https://learn.microsoft.com/dotnet/api/system.boolean)

If false, queued write requests will be sent before disconnecting. During this time, new writes will not be permitted.

### Read(Segment, IOHandler, object) <a href="#ks_reactor_client_ksrudpconnection_read_ks_reactor_ksstreambuffer_segment_ks_reactor_client_ksconnec" id="ks_reactor_client_ksrudpconnection_read_ks_reactor_ksstreambuffer_segment_ks_reactor_client_ksconnec"></a>

Create an asynchronous request to read data from the connection.

```csharp
public override void Read(ksStreamBuffer.Segment segment, ksConnection.IOHandler callback, object asyncState = null)
```

#### Parameters

`segment` [ksStreamBuffer](/reactor/api-reference/ks.reactor/ks.reactor.ksstreambuffer.md).[Segment](/reactor/api-reference/ks.reactor/ks.reactor.ksstreambuffer/ks.reactor.ksstreambuffer.segment.md)

Buffer segement to store data in.

`callback` [ksConnection](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksconnection.md).[IOHandler](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksconnection/ks.reactor.client.ksconnection.iohandler.md)

Callback to invoke when the read attempt completes.

`asyncState` [object](https://learn.microsoft.com/dotnet/api/system.object)

User state to return in the callback.

### Write(Segment, IOHandler, object) <a href="#ks_reactor_client_ksrudpconnection_write_ks_reactor_ksstreambuffer_segment_ks_reactor_client_ksconne" id="ks_reactor_client_ksrudpconnection_write_ks_reactor_ksstreambuffer_segment_ks_reactor_client_ksconne"></a>

Create an asynchronous request to write data on the connection.

```csharp
public override void Write(ksStreamBuffer.Segment segment, ksConnection.IOHandler callback, object asyncState = null)
```

#### Parameters

`segment` [ksStreamBuffer](/reactor/api-reference/ks.reactor/ks.reactor.ksstreambuffer.md).[Segment](/reactor/api-reference/ks.reactor/ks.reactor.ksstreambuffer/ks.reactor.ksstreambuffer.segment.md)

Buffer segement containing the data to write.

`callback` [ksConnection](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksconnection.md).[IOHandler](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksconnection/ks.reactor.client.ksconnection.iohandler.md)

Callback to invoke when the write attempt completes.

`asyncState` [object](https://learn.microsoft.com/dotnet/api/system.object)

User state to return in the callback.

### OnDisconnect <a href="#ks_reactor_client_ksrudpconnection_ondisconnect" id="ks_reactor_client_ksrudpconnection_ondisconnect"></a>

Event invoked during a disconnect of an established connection.

```csharp
public override event ksConnection.DisconnectHandler OnDisconnect
```

#### Event Type

[ksConnection](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksconnection.md).[DisconnectHandler](/reactor/api-reference/ks.reactor.client/ks.reactor.client.ksconnection/ks.reactor.client.ksconnection.disconnecthandler.md)
