public void listenthread(object obj)
{
mutTable.WaitOne();
TcpClient client = _client_table[obj] as TcpClient;
mutTable.ReleaseMutex();
while (true)
{
try
{
NetworkStream nets = client.GetStream();
IFormatter formatter = new BinaryFormatter();
packet receiveobj = (packet)formatter.Deserialize(nets);
mutpac.WaitOne();
packetQ.Enqueue(receiveobj);
mutpac.ReleaseMutex();
}
catch
{
packet exit = new packet("q!", obj as string, null, -1, 0, 0, false);
mutpac.WaitOne();
packetQ.Enqueue(exit);
mutpac.ReleaseMutex();
Thread.CurrentThread.Abort();
}
}
}