SWebServer 1.2.1

dotnet add package SWebServer --version 1.2.1                
NuGet\Install-Package SWebServer -Version 1.2.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="SWebServer" Version="1.2.1" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add SWebServer --version 1.2.1                
#r "nuget: SWebServer, 1.2.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.
// Install SWebServer as a Cake Addin
#addin nuget:?package=SWebServer&version=1.2.1

// Install SWebServer as a Cake Tool
#tool nuget:?package=SWebServer&version=1.2.1                

SWebServer

SWebServer is the simplest web server you can find on the Internet. It is a C# library to setup a web server in the fastest possible way. You can easily develop your response pages writing callbacks function. An example is included.

Description

Server implementations share a common interface, ISWebServer. Actually there are 2 main implementation of ISWebServer:

  1. SWebServerTcp is built on top of Griffin.Framework. It doesn't require any privileges to run.
  2. SWebServerNetsh is build on top of Netsh (utility provided by Window). It requires admin privileges to be run.

Usage

To instantiate the web server based on TCP:

SWebServerTcp ws = new SWebServerTcp(SendResponse, 8081);

or Netsh-ed version:

SWebServerNetsh ws = new SWebServerNetsh(SendResponse, 8081);

where SendResponse is a function that manages the incoming requests, returning a string containg the body of the response. The simplest signature is:

string SendResponse(Stream request);

where the request contains the payload (body) of HTTP request. If request's body is empty, a NullStream is passed as input. Alternatively, a richer signature is:

string SendResponse(string method, string contentType, Stream request);

The response's code sent to the client is always 200, there is not possibility to change this code. Internal error derived from your application should be managed in the response's body.

To effectively start/stop the webserver:

ws.StartAndRun();
ws.Stop();

For more details check the example provided along with the source code.

Product Compatible and additional computed target framework versions.
.NET Framework net461 is compatible.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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
1.2.1 625 11/5/2019
1.2.0 493 10/31/2019
1.1.0 447 10/26/2019
1.0.2 455 10/20/2019
1.0.1 462 10/5/2019
1.0.0 569 10/5/2019

New method to add headers to HTTP response