rendered paste bodyusing System;
using System.Net;
using System.Net.Sockets;
namespace testserver
{
public class test
{
[STAThread]
public static void Main(string[] args)
{
BaseServer test = new BaseServer();
test.Start();
while(true) { }
}
}
public class BaseServer
{
protected Socket m_listen;
public BaseServer()
{
m_asyncAcceptCallback = new AsyncCallback(AcceptCallback);
}
public virtual bool InitSocket()
{
try
{
m_listen = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
m_listen.Bind(new IPEndPoint(IPAddress.Any, 10300));
}
catch
{
return false;
}
return true;
}
public virtual bool Start()
{
if(m_listen == null && !InitSocket())
return false;
try
{
m_listen.Listen(100);
m_listen.BeginAccept(m_asyncAcceptCallback, this);
}
catch
{
if (m_listen != null)
m_listen.Close();
return false;
}
return true;
}
private readonly AsyncCallback m_asyncAcceptCallback;
private void AcceptCallback(IAsyncResult ar)
{
try
{
Socket sock = m_listen.EndAccept(ar);
try
{
Console.WriteLine("It worked!");
}
catch
{
}
}
catch {}
finally
{
m_listen.BeginAccept(m_asyncAcceptCallback, this);
}
}
}
}