Basic.Tcp 2.0.0

Suggested Alternatives

Flare.Tcp

dotnet add package Basic.Tcp --version 2.0.0
NuGet\Install-Package Basic.Tcp -Version 2.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Basic.Tcp" Version="2.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Basic.Tcp --version 2.0.0
#r "nuget: Basic.Tcp, 2.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Basic.Tcp as a Cake Addin
#addin nuget:?package=Basic.Tcp&version=2.0.0

// Install Basic.Tcp as a Cake Tool
#tool nuget:?package=Basic.Tcp&version=2.0.0

Basic.Tcp

nuget badge Unlicense

A basic asynchronous multi-client message-based event-driven tcp server (and client).

Using the BasicTcpServer

// create a new server that listens on port 4269
using var server = new BasicTcpServer(4269);

// attach event handlers
server.ClientConnected += clientId => {
    Console.WriteLine($"Client {clientId} connected.");
};
server.ClientDisconnected += clientId => {
    Console.WriteLine($"Client {clientId} disconnected.");
};
server.MessageReceived += (clientId, message) => {
    // echo message back to client
    server.EnqueueMessage(clientId, message.ToArray());
};

// wait for incoming connections
await server.ListenAsync();

Using the BasicTcpClient

// create a new client
using var client = new BasicTcpClient();

// attach message listener
client.MessageReceived += message => {
    // print message to console
    Console.WriteLine(Encoding.UTF8.GetString(message));
};

// connect to localhost
await client.ConnectAsync(IPAddress.Loopback, 4269);

// send test message
await client.SendMessageAsync(Encoding.UTF8.GetBytes("Anyone there?"));

// read next message from server
await client.ReadMessageAsync();

// disconnect
client.Disconnect();
Product Compatible and additional computed target framework versions.
.NET net5.0 is compatible.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net5.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.0.0 631 11/9/2020
1.0.0 498 11/3/2020