Shadow Network Framework  0.0.2-alpha
.NET Client Library for Shadow Network Framework
Loading...
Searching...
No Matches
Getting Started

Warning
Any version Released Under 0.X.Y-alpha is bound to change the core of the SNFramework and be unstable, there is no guarentee of backward nor forward compatibility at all. Every Library under these version are specifically tailored for the matching version of the opposite category (Category as in Client or Server )
Eg 0.0.1-alpha dotnet Client is made to support and connect to an 0.0.1-alpha C Server, however connecting to 0.0.2-alpha is not guarenteed and may result to undefined behaviour or may throw an SNF Handshake Error or simply hang in the middle of execution.

How to add to your project

First download the DLL from My Website or from Github

To Include this Library in any C# Project these lines in the .csproj

...
<ItemGroup>
<Reference Include="SNFClient">
<HintPath>[Path to Downloaded DLL]</HintPath>
</Reference>
</ItemGroup>
...

If you use Visual Studio (VS 2022) after loading your project follow these steps
Project -> Add COM Reference -> Browse... -> Then select the downloaded 0.0.2-alpha-snfclient-dotnet.dll -> Add -> Ok

How does SNF work?

The general idea behind SNF is that it sends and receives Requests, automatically handles them behind the scenes on a Separate Thread Pool.

Overview on SNF Requests

Shadow Network Framework is based on an Unnamed Protocol ( Not yet named ) where it sends variables in one buffer

  • Request's Informations
  • Request's OPCode
  • Request's Content (Arguments)

Request's Informations

SNF Request must have a

  • Request's Unique IDentifier (See Request.UID for more information ).
  • Request's Registred OPCode Defining the action to do which would be encoded into a 4 bytes array

Request's OPCode

It is a series of 4 OPCode Members, 1 of each OPCode Member Ranks , Ranks are the following (In order from highest to lowest)

  • Category
  • Sub-Category
  • Command
  • Detail

There is by default some base OPcode Members which are required for the normal functioning of the framework.

Warning
Never Add/Modify Base OPCode Members!


See more about the base OPCode Members in OPCode Base Class

See more about OPCode's Structure

Request's Content (Arguments)

The Contents are ASCII Strings in byte format that are Separated by a character called UNIT_SCEPARATOR ( 31 )

The limitation of treating the arguments as string will be problematic when you want to send binary data, this will of course be changed in future releases , but for now remember Arguments are ASCII strings.


Next: Tutorials ►