shoftee / griffin.networking

Networking library for .NET

Home Page:http://blog.gauffin.org/2012/05/griffin-networking-a-somewhat-performant-networking-library-for-net/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Griffin.Networking

Griffin.Networking has now been superseded by Griffin.Framework. It's pretty much better at everything.

Documentation

Still work in progress but the core framework should be reasonable stable.

Example HTTP listener

internal class Program
{
	public static void RunDemo()
	{
		var server = new MessagingServer(new MyHttpServiceFactory(),
											new MessagingServerConfiguration(new HttpMessageFactory()));
		server.Start(new IPEndPoint(IPAddress.Loopback, 8888));
	}
}
 
// factory
public class MyHttpServiceFactory : IServiceFactory
{
	public IServerService CreateClient(EndPoint remoteEndPoint)
	{
		return new MyHttpService();
	}
}
 
// and the handler
public class MyHttpService : HttpService
{
	private static readonly BufferSliceStack Stack = new BufferSliceStack(50, 32000);
 
	public MyHttpService()
		: base(Stack)
	{
	}
 
	public override void Dispose()
	{
	}
 
	public override void OnRequest(IRequest request)
	{
		var response = request.CreateResponse(HttpStatusCode.OK, "Welcome");
 
		response.Body = new MemoryStream();
		response.ContentType = "text/plain";
		var buffer = Encoding.UTF8.GetBytes("Hello world");
		response.Body.Write(buffer, 0, buffer.Length);
		response.Body.Position = 0;
 
		Send(response);
	}
}

About

Networking library for .NET

http://blog.gauffin.org/2012/05/griffin-networking-a-somewhat-performant-networking-library-for-net/

License:GNU Lesser General Public License v3.0


Languages

Language:HTML 89.8%Language:C# 8.5%Language:JavaScript 1.0%Language:CSS 0.5%Language:ASP 0.2%