Brosilio / Fluxgate

C# event based TCP socket wrapper

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

UPDATE

This repository is garbage. Look elsewhere for good code.

Fluxgate asyncronous event based networking libraries for C#/.NET.

Notes

Fluxgate uses an internal protocol, but don't worry - it's turbo simple. The first four bytes are considered to be the length of the incoming data. Fluxgate automatically adds these bytes when you use the Send() method on a client, and automatically removes them when it fires OnFullPacket.

Getting started

Add using Fluxgate; to the top of your file.

Creating a server

Creating a server is pretty easy. First, just do the following:

Server server = new Server(<port>, [backlog]);

Then, hook the events provided.

server.OnNewClient += OnNewClient;
server.OnError += OnServerError;

Or something. Now, create said methods. In this case, OnNewClient(client) is where we will manage the new clients (duh).

public void OnNewClient(Client client)
{
     
}

public void OnServerError(Exception ex) => Console.WriteLine(ex.Message);

Once all this is done, you can start the server.

server.Listen();

Creating a client

This is also simple. Just do this:

Client client = new Client();

The client accepts an already connected socket or nothing in the constructor. The client has many more events to hook than the server. Since these are really easy to use, I'm going to leave it up to you to figure it out. This is a list of events on the client:

OnFullPacket(Client sender, byte[] data)
OnDisconnect(Client sender, Exception errorIfAny)
OnError(Client sender, Exception fuck)
OnConnect(Client sender)
Log(string info) // This is for internal debugging.

About

C# event based TCP socket wrapper


Languages

Language:C# 100.0%