SquaddieSnowball.SimpleServerCollection.SimpleTcpServer 2.0.1

dotnet add package SquaddieSnowball.SimpleServerCollection.SimpleTcpServer --version 2.0.1
                    
NuGet\Install-Package SquaddieSnowball.SimpleServerCollection.SimpleTcpServer -Version 2.0.1
                    
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="SquaddieSnowball.SimpleServerCollection.SimpleTcpServer" Version="2.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SquaddieSnowball.SimpleServerCollection.SimpleTcpServer" Version="2.0.1" />
                    
Directory.Packages.props
<PackageReference Include="SquaddieSnowball.SimpleServerCollection.SimpleTcpServer" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add SquaddieSnowball.SimpleServerCollection.SimpleTcpServer --version 2.0.1
                    
#r "nuget: SquaddieSnowball.SimpleServerCollection.SimpleTcpServer, 2.0.1"
                    
#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.
#:package SquaddieSnowball.SimpleServerCollection.SimpleTcpServer@2.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=SquaddieSnowball.SimpleServerCollection.SimpleTcpServer&version=2.0.1
                    
Install as a Cake Addin
#tool nuget:?package=SquaddieSnowball.SimpleServerCollection.SimpleTcpServer&version=2.0.1
                    
Install as a Cake Tool

How to use

Configure the server in the appsettings.json file:

{
    "TcpServerOptions": {
        "IpAddress": "127.0.0.1",
        "Port": 8080
    }
}

Available options:

  • IpAddress* - string representing the local IP address;
  • Port* - port on which requests will be listened;
  • RequestBufferSize - size of the byte array used as a buffer to store the request;
  • RequestReadTimeout - timeout (in milliseconds) for reading request data.

Options marked with * are required.

Add the required services to the container using the AddTcpServer method, configure the request handler and start the server:

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using SimpleTcpServer;
using SimpleTcpServer.Entities;
using SimpleTcpServer.Extensions.DependencyInjection;
using SimpleTcpServer.Extensions.Options;

HostApplicationBuilder hostApplicationBuilder = Host.CreateApplicationBuilder();
hostApplicationBuilder.Services.AddTcpServer(nameof(TcpServerOptions));
IHost host = hostApplicationBuilder.Build();

TcpServer tcpServer = host.Services.GetRequiredService<TcpServer>();
tcpServer.RequestHandler = req => new TcpResponse(req.Body.Reverse());
tcpServer.Start();

await host.StartAsync();

License

Simple Server Collection is licensed under the MIT license.

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  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.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on SquaddieSnowball.SimpleServerCollection.SimpleTcpServer:

Package Downloads
SquaddieSnowball.SimpleServerCollection.SimpleHttpServer

Lightweight HTTP server with basic functionality.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.0.1 231 12/18/2023
1.2.0 210 11/6/2023
1.1.1 183 10/24/2023
1.1.0 176 10/23/2023
1.0.0 333 1/12/2023

- Fixed missing validation