malovern - 2015-04-03

Usage :

using System;

namespace SocketServerTest
{
    class Program
    {
        static AsyncSocketServer ss = new AsyncSocketServer();

        static void Main(string[] args)
        {
            ss.ServerListening += new AsyncSocketServer.ListenHandler(ss_ServerListening);
            ss.ClientConnected += new AsyncSocketServer.ConnectedHandler(ss_ClientConnected);
            ss.ClientDisconnected += new AsyncSocketServer.DisconnectedHandler(ss_ClientDisconnected);
            ss.ClientDataArrival += new AsyncSocketServer.DataArrivalHandler(ss_ClientDataArrival);
            ss.ServerError += new AsyncSocketServer.ErrorEventHandler(ss_ServerError);
            ss.MessageTerminator = Environment.NewLine;

            ss.StartServer(1000);

            Console.ReadKey();
            ss.StopServer();

        }

        static void ss_ServerError(Exception ex)
        {
            Console.WriteLine("Server Error : {0}",ex.Message);
        }

        static void ss_ClientDataArrival(ref CStateObject state, string data)
        {
            Console.WriteLine("Client data : {0} {1}", state.Guid,data);
        }

        static void ss_ClientDisconnected(ref CStateObject state)
        {
            Console.WriteLine("Client disconnected : {0} {1}", state.WorkSocket.RemoteEndPoint.ToString(), state.Guid);
        }

        static void ss_ServerListening()
        {
            Console.WriteLine("server listening");
        }

        static void ss_ClientConnected(ref CStateObject state)
        {
            Console.WriteLine("Client connected : {0} {1}", state.WorkSocket.RemoteEndPoint.ToString(), state.Guid);
        }
    }
}