-
-
Notifications
You must be signed in to change notification settings - Fork 3
Exomia.Network
Daniel Baetz edited this page Jun 19, 2019
·
28 revisions
A TCP/UDP-Client base.
public abstract class Exomia.Network.ClientBase
: IClient, IDisposable
Fields
Type | Name | Summary |
---|---|---|
Socket |
_clientSocket | The client socket. |
Byte |
_state | The state. |
Properties
Type | Name | Summary |
---|---|---|
Int32 |
Port | Port. |
String |
ServerAddress | ServerAddress. |
Events
Type | Name | Summary |
---|---|---|
DisconnectedHandler |
Disconnected | called than the client is Disconnected. |
Action<PingPacket> |
Ping | called than a ping is received. |
Methods
Type | Name | Summary |
---|---|---|
void |
AddCommand(UInt32 commandid, DeserializePacketHandler<Object> deserialize) |
add a command. |
void |
AddDataReceivedCallback(UInt32 commandid, DataReceivedHandler callback) |
add a data received callback. |
SendError |
BeginSendData(UInt32 commandid, Byte[] data, Int32 offset, Int32 length, UInt32 responseID) |
Begins send data. |
Boolean |
Connect(IPAddress[] ipAddresses, Int32 port, Int32 timeout = 10) |
inheritdoc |
Boolean |
Connect(String serverAddress, Int32 port, Int32 timeout = 10) |
inheritdoc |
void |
DeserializeData(UInt32 commandid, Byte[] data, Int32 offset, Int32 length, UInt32 responseid) |
Deserialize data. |
void |
Disconnect() | inheritdoc |
void |
Disconnect(DisconnectReason reason) |
inheritdoc |
void |
Dispose() | inheritdoc |
void |
Finalize() | ClientBase destructor. |
void |
OnDispose(Boolean disposing) |
OnDispose. |
void |
ReceiveAsync() | Receive asynchronous. |
void |
RemoveCommand(UInt32 commandid) |
remove a command. |
void |
RemoveDataReceivedCallback(UInt32 commandid, DataReceivedHandler callback) |
remove a data received callback. |
SendError |
Send(UInt32 commandid, Byte[] data, Int32 offset, Int32 length) |
inheritdoc |
SendError |
Send(UInt32 commandid, ISerializable serializable) |
inheritdoc |
SendError |
Send(UInt32 commandid, T& data) |
inheritdoc |
SendError |
SendPing() | inheritdoc |
Task<Response<TResult>> |
SendR(UInt32 commandid, Byte[] data, Int32 offset, Int32 length) |
inheritdoc |
Task<Response<TResult>> |
SendR(UInt32 commandid, Byte[] data, Int32 offset, Int32 length, DeserializePacketHandler<TResult> deserialize) |
inheritdoc |
Task<Response<TResult>> |
SendR(UInt32 commandid, Byte[] data, Int32 offset, Int32 length, TimeSpan timeout) |
inheritdoc |
Task<Response<TResult>> |
SendR(UInt32 commandid, Byte[] data, Int32 offset, Int32 length, DeserializePacketHandler<TResult> deserialize, TimeSpan timeout) |
inheritdoc |
Task<Response<TResult>> |
SendR(UInt32 commandid, ISerializable serializable) |
inheritdoc |
Task<Response<TResult>> |
SendR(UInt32 commandid, ISerializable serializable, DeserializePacketHandler<TResult> deserialize) |
inheritdoc |
Task<Response<TResult>> |
SendR(UInt32 commandid, ISerializable serializable, TimeSpan timeout) |
inheritdoc |
Task<Response<TResult>> |
SendR(UInt32 commandid, ISerializable serializable, DeserializePacketHandler<TResult> deserialize, TimeSpan timeout) |
inheritdoc |
Task<Response<TResult>> |
SendR(UInt32 commandid, T& data) |
inheritdoc |
Task<Response<TResult>> |
SendR(UInt32 commandid, T& data, DeserializePacketHandler<TResult> deserialize) |
inheritdoc |
Task<Response<TResult>> |
SendR(UInt32 commandid, T& data, TimeSpan timeout) |
inheritdoc |
Task<Response<TResult>> |
SendR(UInt32 commandid, T& data, DeserializePacketHandler<TResult> deserialize, TimeSpan timeout) |
inheritdoc |
Task<Response<PingPacket>> |
SendRPing() | inheritdoc |
Boolean |
TryCreateSocket(Socket& socket) |
Attempts to create socket. |
Static Fields
Type | Name | Summary |
---|---|---|
Byte |
RECEIVE_FLAG | The receive flag. |
Byte |
SEND_FLAG | The send flag. |
CommandID.
public static class Exomia.Network.CommandID
Static Fields
Type | Name | Summary |
---|---|---|
UInt32 |
CONNECT | CONNECT_ID. |
UInt32 |
DISCONNECT | DISCONNECT_ID. |
UInt32 |
PING | PING_ID. |
Values that represent CompressionMode. MASK 0b00111000.
public enum Exomia.Network.CompressionMode
: Enum, IComparable, IFormattable, IConvertible
Enum
Value | Name | Summary |
---|---|---|
0 |
None | None |
32 |
Lz4 | LZ4 |
can be used to determine if a client has disconnected properly.
public enum Exomia.Network.DisconnectReason
: Enum, IComparable, IFormattable, IConvertible
Enum
Value | Name | Summary |
---|---|---|
0 |
Unspecified | Unspecified/Unknown Reason |
1 |
Graceful | Graceful |
2 |
Aborted | Aborted |
3 |
Error | Error |
Values that represent EncryptionMode. MASK 0b00000111.
public enum Exomia.Network.EncryptionMode
: Enum, IComparable, IFormattable, IConvertible
Enum
Value | Name | Summary |
---|---|---|
0 |
None | None |
4 |
End2End | End2End |
IClient interface.
public interface Exomia.Network.IClient
: IDisposable
Methods
Type | Name | Summary |
---|---|---|
Boolean |
Connect(String serverAddress, Int32 port, Int32 timeout = 10) |
try's to connect the client to a server. |
Boolean |
Connect(IPAddress[] ipAddresses, Int32 port, Int32 timeout = 10) |
try's to connect the client to a server. |
void |
Disconnect() | call to disconnect from a server. |
SendError |
Send(UInt32 commandid, Byte[] data, Int32 offset, Int32 length) |
send data to the server. |
SendError |
Send(UInt32 commandid, ISerializable serializable) |
send data to the server. |
SendError |
Send(UInt32 commandid, T& data) |
send data to the server. |
SendError |
SendPing() | send a ping command to the server. |
Task<Response<TResult>> |
SendR(UInt32 commandid, Byte[] data, Int32 offset, Int32 length) |
send data to the server. |
Task<Response<TResult>> |
SendR(UInt32 commandid, Byte[] data, Int32 offset, Int32 length, DeserializePacketHandler<TResult> deserialize) |
send data to the server. |
Task<Response<TResult>> |
SendR(UInt32 commandid, Byte[] data, Int32 offset, Int32 length, TimeSpan timeout) |
send data to the server. |
Task<Response<TResult>> |
SendR(UInt32 commandid, Byte[] data, Int32 offset, Int32 length, DeserializePacketHandler<TResult> deserialize, TimeSpan timeout) |
send data to the server. |
Task<Response<TResult>> |
SendR(UInt32 commandid, ISerializable serializable) |
send data to the server. |
Task<Response<TResult>> |
SendR(UInt32 commandid, ISerializable serializable, DeserializePacketHandler<TResult> deserialize) |
send data to the server. |
Task<Response<TResult>> |
SendR(UInt32 commandid, ISerializable serializable, TimeSpan timeout) |
send data to the server. |
Task<Response<TResult>> |
SendR(UInt32 commandid, ISerializable serializable, DeserializePacketHandler<TResult> deserialize, TimeSpan timeout) |
send data to the server. |
Task<Response<TResult>> |
SendR(UInt32 commandid, T& data) |
send data to the server. |
Task<Response<TResult>> |
SendR(UInt32 commandid, T& data, DeserializePacketHandler<TResult> deserialize) |
send data to the server. |
Task<Response<TResult>> |
SendR(UInt32 commandid, T& data, TimeSpan timeout) |
send data to the server. |
Task<Response<TResult>> |
SendR(UInt32 commandid, T& data, DeserializePacketHandler<TResult> deserialize, TimeSpan timeout) |
send data to the server. |
Task<Response<PingPacket>> |
SendRPing() | send a ping command to the server. |
Packet readonly struct.
public struct Exomia.Network.Packet
Fields
Type | Name | Summary |
---|---|---|
Byte[] |
Buffer | Buffer. |
Int32 |
Length | Length. |
Int32 |
Offset | Offset. |
A response.
public struct Exomia.Network.Response<TResult>
Fields
Type | Name | Summary |
---|---|---|
TResult |
Result | Result. |
SendError |
SendError | SendError. |
Values that represent SendError.
public enum Exomia.Network.SendError
: Enum, IComparable, IFormattable, IConvertible
Enum
Value | Name | Summary |
---|---|---|
0 |
None | No error, all good |
1 |
Socket | A socket exception is occured |
2 |
Disposed | The socket was disposed |
3 |
Invalid | The SEND_FLAG is not set |
4 |
Unknown | Unknown error occured |
A server base.
public abstract class Exomia.Network.ServerBase<T, TServerClient>
: IServer<T>, IDisposable
Fields
Type | Name | Summary |
---|---|---|
Dictionary<T, TServerClient> |
_clients | Dictionary{T, TServerClient} |
Socket |
_listener | The listener. |
Int32 |
_port | The port. |
Byte |
_state | The state. |
Properties
Type | Name | Summary |
---|---|---|
Int32 |
Port | Port. |
Events
Type | Name | Summary |
---|---|---|
ClientActionHandler<T> |
ClientConnected | called than a client is connected. |
ClientDisconnectHandler<T> |
ClientDisconnected | called than a client is disconnected. |
Methods
Type | Name | Summary |
---|---|---|
void |
AddCommand(UInt32 commandid, DeserializePacketHandler<Object> deserialize) |
add a command. |
void |
AddDataReceivedCallback(UInt32 commandid, ClientDataReceivedHandler<T, TServerClient> callback) |
add a data received callback. |
Boolean |
CreateServerClient(T arg0, TServerClient& serverClient) |
Create a new ServerClient than a client connects. |
void |
DeserializeData(T arg0, UInt32 commandid, Byte[] data, Int32 offset, Int32 length, UInt32 responseid) |
Deserialize data. |
void |
Dispose() | inheritdoc |
void |
Finalize() | ServerBase destructor. |
void |
InvokeClientDisconnect(T arg0, DisconnectReason reason) |
Executes the client disconnect on a different thread, and waits for the result. |
void |
ListenAsync() | Listen asynchronous. |
void |
OnAfterClientDisconnect(T arg0) |
called after Exomia.Network.ServerBase2.InvokeClientDisconnect( 0,Exomia.Network.DisconnectReason). |
void |
OnClientConnected(T arg0) |
called than a new client is connected. |
void |
OnClientDisconnected(T arg0, DisconnectReason reason) |
called then the client is connected. |
void |
OnDispose(Boolean disposing) |
OnDispose. |
Boolean |
OnRun(Int32 port, Socket& listener) |
Executes the run action. |
Boolean |
RemoveCommand(UInt32 commandid) |
remove a command. |
void |
RemoveDataReceivedCallback(UInt32 commandid, ClientDataReceivedHandler<T, TServerClient> callback) |
remove a data received callback. |
Boolean |
Run(Int32 port) |
inheritdoc |
SendError |
SendTo(T arg0, UInt32 commandid, Byte[] data, Int32 offset, Int32 length, UInt32 responseid) |
inheritdoc |
SendError |
SendTo(T arg0, UInt32 commandid, ISerializable serializable, UInt32 responseid) |
inheritdoc |
SendError |
SendTo(T arg0, UInt32 commandid, T1& data, UInt32 responseid) |
inheritdoc |
void |
SendToAll(UInt32 commandid, Byte[] data, Int32 offset, Int32 length) |
inheritdoc |
void |
SendToAll(UInt32 commandid, T1& data) |
inheritdoc |
void |
SendToAll(UInt32 commandid, ISerializable serializable) |
inheritdoc |
Static Fields
Type | Name | Summary |
---|---|---|
Int32 |
CLOSE_TIMEOUT | The close timeout. |
Byte |
RECEIVE_FLAG | The receive flag. |
Byte |
SEND_FLAG | The send flag. |
ServerClientBase{T} class.
public abstract class Exomia.Network.ServerClientBase<T>
Fields
Type | Name | Summary |
---|---|---|
T |
_arg0 | Socket |
Properties
Type | Name | Summary |
---|---|---|
EndPoint |
EndPoint | EndPoint. |
IPAddress |
IPAddress | IPAddress. |
DateTime |
LastReceivedPacketTimeStamp | LastReceivedPacketTimeStamp. |
Methods
Type | Name | Summary |
---|---|---|
void |
SetLastReceivedPacketTimeStamp() | Sets last received packet time stamp. |