Example #1
0
 /// <summary>
 /// Close a connection.
 /// </summary>
 /// <param name="cnxHandle">Connection to close</param>
 public void KillClient(TcpConnectionHandle cnxHandle)
 {
     try
     {
         if (cnxHandle != null)
         {
             OnCloseMessageReceived(new MessageData(null, 0, cnxHandle.ConnectionClient.Client.RemoteEndPoint, cnxHandle));
             // Stop tcpclient.
             cnxHandle.ConnectionClient.Client.Shutdown(SocketShutdown.Both);
             cnxHandle.ConnectionClient.Client.Close();
             cnxHandle.ConnectionClient.Close();
             // Kill the thread.
             cnxHandle.ConnectionThread.Join(50);
             lock (TcpConnectionHandler)
             {
                 TcpConnectionHandler.Remove(cnxHandle);
             }
             cnxHandle = null;
         }
     }
     catch (Exception ex)
     {
         Logger.Error("Exception raised killing tcpconnectionhandle.", ex);
     }
 }
Example #2
0
 /// <summary>
 /// Event caller.
 /// </summary>
 /// <param name="message">Raw message received from network</param>
 protected void OnCloseMessageReceived(MessageData message)
 {
     try
     {
         if (CloseConnection != null)
         {
             CloseConnection(this, message);
             lock (TcpConnectionHandler)
             {
                 TcpConnectionHandler.Remove(message.ConnectionHandle);
             }
         }
     }
     catch (Exception)
     {
         Logger.Error("Exception raised closing connection handle and removing from connection list.");
     }
 }