https://github.com/bigbuildbench/job79_easytcp
Science Score: 13.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (11.4%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: BigBuildBench
- License: mit
- Language: C#
- Default Branch: master
- Size: 1.65 MB
Statistics
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
EasyTcp
EasyTcp is a simple and fast tcp library that handles all the repetative tasks that are normally done when working with tcp.
It tries to make tcp simple without giving up on functionality or performance.
Different packages
EasyTcp has multiple packages, this to keep the project maintainable and the dependencies small. Every package has his own goal and all packages are compatible with eachother.
| Package | Functionality |
|--------------------|-----------------------------------|
| EasyTcp | Base package with the networking functionality.
Contains support for serialisation, multiple types of framing, compression, logging, streaming and disconnect detection (with optional keep alive) |
| EasyTcp.Actions | Support for EasyTcp to triggering specific functions with an attribute based on received data |
| EasyTcp.Encryption | TLS/SSL support for EasyTcp and EasyTcp.Actions |
Downloads
dotnet add package EasyTcp
dotnet add package EasyTcp.Actions
dotnet add package EasyTcp.Encryption
Documentation
Work in progress...
Examples
EasyTcp
```cs using var server = new EasyTcpServer().Start(8080); server.OnDataReceive += (sender, message) => Console.WriteLine(message);
using var client = new EasyTcpClient(); if(!client.Connect("127.0.0.1", 8080)) return; // Abort if connection attempt failed client.Send("Hello server"); Console.ReadLine();
// Output: Hello server ```
EasyTcp.Actions
```cs static void Main(string[] args) { using var server = new EasyTcpActionServer().Start(8080); // Server automatically detects all action methods within the current assembly server.OnUnknownAction += (s, actionMessage) => Console.WriteLine("Unknown action received");
using var client = new EasyTcpClient();
if(!client.Connect("127.0.0.1", PORT)) return;
client.SendAction("ECHO","Hello me"); // Trigger the ECHO action server side
client.SendAction("BROADCAST","Hello everyone"); // Trigger the BROADCAST action server side
Console.ReadLine();
}
[EasyAction("ECHO")] // Trigger function when "ECHO" action is received public void EchoAction(Message message) { message.Client.Send(message); }
[EasyAction("BROADCAST")] public void BroadcastAction(object sender, Message message) { var server = (EasyTcpServer) sender; // Retrieve server server.SendAll(message); } ```
EasyTcp.Encryption
```cs var certificate = new X509Certificate2("certificate.pfx", "password"); // Load ssl certificate using var server = new EasyTcpServer().UseServerSsl(certificate).Start(8080); // Use ssl for all incoming / outgoing messages server.OnDataReceive += (sender, message) => Console.WriteLine(message); // Message is automatically decrypted
using var client = new EasyTcpClient().UseSsl("localhost", acceptInvalidCertificates: true); // "localhost" = server domain if(!client.Connect("127.0.0.1", 8080)) return; client.Send("Hello ssl server!"); // All data is automatically encrypted Console.ReadLine(); ```
Owner
- Name: BigBuildBench
- Login: BigBuildBench
- Kind: organization
- Repositories: 1
- Profile: https://github.com/BigBuildBench
abbr. B3, benchmarking the repo-level understanding capability of your LLMs by reconstructing project build-file.
GitHub Events
Total
- Create event: 5
Last Year
- Create event: 5
Dependencies
- actions/checkout v3 composite
- actions/setup-dotnet v2 composite