65.9K
CodeProject is changing. Read more.
Home

EasySocket - Flexible and easy implementation of client-server architecture in C#

starIconstarIconstarIconstarIconemptyStarIcon

4.00/5 (20 votes)

Sep 6, 2005

2 min read

viewsIcon

92128

downloadIcon

3005

Using .NET Socket on TCP to create events oriented client-server behaviour.

Sample Image - EasySocketDocument.jpg

Introduction

My first encounter with Windows Sockets was about two months ago with MFC. At that time I simply wanted to experience some TCP\IP programming just before my next semester. That was the ugliest thing I've ever seen and I switched back to .NET. Although it was a lot easier I couldn't find objects that would give me client server behaviour right away and still will keep the flexibility of the Socket object (not to mention an event oriented one). So I took on myself a little project, 3-4 days I think. And I gave life to the EasySocket namespace and the EasyClient, and EasyServer classes.

EasyServer and EasyClient

EasyServer represents the server entity. It has very flexible and useful features. It's an event oriented object and sending any type of serializable object can be done in one line. Most of the methods have both synchronous and asynchronous versions (runs on separate threads). EasyServer was designed with EasyClient and they have a special functionality together (like communication testing), but with proper programming, it can also communicate with any client application. You can get information about the connected clients, their last transition time and more...

EasyClient is the client entity and was written with the same spirit of event oriented programming and can send\get data, make connection tests, connection status and more.

Usage Instructions

The downloadable source code has the EasySocket solution (*.sln file). Its output is a DLL file and an XML comments file. To use it in your own project, simply add to the project a reference to the EasySocket.dll file.

Documentation

I've spent a great deal of time commenting the code and generated detailed and easy to use documentation (HTML & WinHelp) and I recommend reading it in case you intend to change or understand the code. There are two types of documentation: one for client programmers (those who are using the DLL only), and second for programmers who want to edit the code (includes details about private members and private functions). Have fun...