public void Start()
{
if (Busy)
return;
try
{
listen_socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
listen_socket.Bind(new IPEndPoint(IPAddress.Any, 843));
listen_socket.Listen(500);
listen_socket.Blocking = false;
Busy = true;
}
catch (SocketException se)
{
// Most common mistake: port 843 is not user accessible on unix-like operating systems
if (se.SocketErrorCode == SocketError.AccessDenied)
{
Console.WriteLine("NOTE: must be run as root since the server listen to port 843");
}
else
{
Console.WriteLine(se);
}
}
runner = new Thread(new ThreadStart(RunServer));
runner.Start();
}