Network

King Network

Examples

Cubes Unity Example


Nuget Packages

King Server
https://www.nuget.org/packages/KingNetwork.Server/

King Client
https://www.nuget.org/packages/KingNetwork.Client/

King Shared
https://www.nuget.org/packages/KingNetwork.Shared/

Using the KingServer

// create and start the server
var server = new KingServer(port: 7171);
server.MessageReceivedHandler = OnMessageReceived;
server.Start();

// implements the callback for MessageReceivedHandler
private void OnMessageReceived(IClient client, KingBuffer kingBuffer)
{
    Console.WriteLine(____ROOT____quot;Received data from client {client.Id}, data length {kingBuffer.Length()}");
}

// send a message to all clients
using(var kingBuffer = new KingBuffer())
{
    kingBuffer.WriteString("Test message!");
    server.SendMessageToAll(kingBuffer);
}

// stop the server when you don't need it anymore
server.Stop();

Using the KingClient

// create and connect the client
var client = new KingClient();
client.MessageReceivedHandler = OnMessageReceived;
client.Connect("127.0.0.1", 7171);

// implements the callback for MessageReceivedHandler
private void OnMessageReceived(KingBuffer kingBuffer)
{
    Console.WriteLine(____ROOT____quot;Received data from server, data length {kingBuffer.Length()}");
}

/// send a message to server
using(var kingBuffer = new KingBuffer())
{
    kingBuffer.WriteString("Test message!");
    client.SendMessage(kingBuffer);
}

// disconnect from the server when we are done
client.Disconnect();

Benchmarks

Connections Test
We also test only the raw KingNetwork library by spawing 1 server and 1000 clients, each client sending 100 bytes 14 times per second and the server echoing the same message back to each client. Test Computer: Acer F 15 with a 2,9 GHz Intel Core i7 7gen processor and 32 GB ram DDR4.
Test Results:

Clients CPU Usage Ram Usage Bandwidth Client+Server Result
64 0.5% 9 MB 0.3 MB/s Passed
128 1% 10 MB 0.7 MB/s Passed
500 18% 18 MB 2~3 MB/s Passed
1000 32% 26 MB 5~6 MB/s Passed