private void Go()
{
try
{
while (true)
{
try
{
TCPConnection con = listener.waitForConnection();
ClientConnection client = new ClientConnection(con);
client.MessageFailed += MessageFailed;
client.MessageReceived += MessageReceived;
client.ConnectionFailed += ConnectionFailed;
if (InitialConnectionSuccess != null)
{
InitialConnectionSuccessEventArgs args = new InitialConnectionSuccessEventArgs();
args.Client = client;
InitialConnectionSuccess(this, args);
}
}
catch (SocketException e)
{
if (InitialConnectionFailed != null)
{
InitialConnectionFailedEventArgs args = new InitialConnectionFailedEventArgs();
args.Cause = e;
InitialConnectionFailed(this, args);
}
}
catch (InvalidOperationException e)
{
if (InitialConnectionFailed != null)
{
InitialConnectionFailedEventArgs args = new InitialConnectionFailedEventArgs();
args.Cause = e;
InitialConnectionFailed(this, args);
}
}
}
}
catch (ThreadAbortException)
{
// do something ?
}
}