异步socket Accept数据时使用try catch 捕捉socket 释放异常,服务端监听.
try
{
//同步完成按照msdn解释不会调用Comleted事件
if (!listenSocket.AcceptAsync(listenSocketAsyncEventArgs))
{
listenSocketAsyncEventArgs_Completed(listenSocket, listenSocketAsyncEventArgs);
}
}
catch (SocketException)
{
System.Diagnostics.Trace.WriteLine("TCPAsyncServer监听服务已经停止....");
}
catch (ObjectDisposedException)
{
System.Diagnostics.Trace.WriteLine("TCPAsyncServer无法访问已经释放对象的监听服务....");
}
异步socket 接收数据时使用try catch 捕捉socket 释放异常
try
{
if (!socket.ReceiveAsync(socketArg))
{
OnSocketReceive(socket, socketArg);
}
}
catch (SocketException)
{
//出错返回联接异常信息
SocketIntermitEvent();
}
catch (ObjectDisposedException)
{
SocketIntermitEvent();
}