.net C# 异步socket ,监听和接收数据时可能会引起的 无法访问已释放的对像异常.捕捉处理.

来源:互联网 发布:java中写html 编辑:程序博客网 时间:2024/05/22 13:06



异步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();                }


0 0
原创粉丝点击