using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SuperSocket.SocketBase;
using SuperSocket.SocketBase.Config;
using System.Net.Sockets;
using System.Net;
namespace SuperSocket.SocketEngine
{
delegate void ErrorHandler(ISocketListener listener, Exception e);
delegate void NewClientAcceptHandler(ISocketListener listener, Socket client, object state);
///
/// The interface for socket listener
///
interface ISocketListener
{
///
/// Gets the info of listener
///
ListenerInfo Info { get; }
///
/// Gets the end point the listener is working on
///
IPEndPoint EndPoint { get; }
///
/// Starts to listen
///
/// The server config.
///
bool Start(IServerConfig config);
///
/// Stops listening
///
void Stop();
///
/// Occurs when new client accepted.
///
event NewClientAcceptHandler NewClientAccepted;
///
/// Occurs when error got.
///
event ErrorHandler Error;
///
/// Occurs when [stopped].
///
event EventHandler Stopped;
}
}