socket 异常类型

对各种异常进行处理
  /// <summary>
        
/// 根据错误号作出处理
        
/// </summary>
        
/// <param name="error"></param>
        
/// <param name="client"></param>
        private void CatchWithSocketError(SocketError error, ServerMessage client)
        {
            
#region 各种错误号
            
//AccessDenied已试图通过被其访问权限禁止的方式访问 Socket。 
            
//ConnectionAborted此连接由 .NET Framework 或基础套接字提供程序中止。 
            
// Disconnecting正常关机正在进行中。
            
//Fault 基础套接字提供程序检测到无效的指针地址。  
             
//HostDown 由于远程主机被关闭,操作失败。  
             
//HostNotFound 无法识别这种主机。该名称不是正式的主机名或别名。  
             
//HostUnreachable 没有到指定主机的网络路由。  
             
//InProgress 阻止操作正在进行中。  
             
//Interrupted 已取消阻止 Socket 调用的操作。  
             
//InvalidArgument 给 Socket 成员提供了一个无效参数。  
             
//IOPending 应用程序已启动一个无法立即完成的重叠操作。  
             
//IsConnected Socket 已连接。  
             
//MessageSize 数据报太长。  
             
//NetworkDown 网络不可用。  
             
//NetworkReset 应用程序试图在已超时的连接上设置 KeepAlive。  
             
//NetworkUnreachable 不存在到远程主机的路由。  
             
//NoBufferSpaceAvailable 没有可用于 Socket 操作的可用缓冲区空间。  
             
//NoData 在名称服务器上找不到请求的名称或 IP 地址。  
             
//NoRecovery 错误不可恢复或找不到请求的数据库。  
             
//NotConnected 应用程序试图发送或接收数据,但是 Socket 未连接。  
             
//NotInitialized 尚未初始化基础套接字提供程序。  
             
//NotSocket 对非套接字尝试 Socket 操作。  
             
//OperationAborted 由于 Socket 已关闭,重叠的操作被中止。  
             
//OperationNotSupported 协议族不支持地址族。  
             
//ProcessLimit 正在使用基础套接字提供程序的进程过多。  
             
//ProtocolFamilyNotSupported 未实现或未配置协议族。  
             
//ProtocolNotSupported 未实现或未配置协议。  
             
//ProtocolOption 对 Socket 使用了未知、无效或不受支持的选项或级别。  
             
//ProtocolType 此 Socket 的协议类型不正确。  
             
//Shutdown 发送或接收数据的请求未得到允许,因为 Socket 已被关闭。  
             
//SocketError 发生了未指定的 Socket 错误。  
             
//SocketNotSupported 在此地址族中不存在对指定的套接字类型的支持。  
             
//Success Socket 操作成功。  
             
//SystemNotReady 网络子系统不可用。  
             
//TimedOut 连接尝试超时,或者连接的主机没有响应。  
             
//TooManyOpenSockets 基础套接字提供程序中打开的套接字太多。  
             
//TryAgain 无法解析主机名。请稍后重试。  
             
//TypeNotFound 未找到指定的类。  
             
//VersionNotSupported 基础套接字提供程序的版本超出范围。  
            
//WouldBlock 对非阻止性套接字的操作不能立即完成。 
            #endregion

            
if (error == SocketError.Disconnecting || error == SocketError.Fault || error == SocketError.IsConnected || error == SocketError.SocketError)
            {
                client.Socket.Close();
                ui.Post(
this.uiDisPlay.delUser, client);
            }
            
if (error == SocketError.MessageSize || error == SocketError.NotConnected || error == SocketError.ProcessLimit || error == SocketError.TooManyOpenSockets)
            {
                client.Socket.Close();
                ui.Post(
this.uiDisPlay.delUser, client);
            }
        }

posted on 2010-04-27 19:25  chuncn  阅读(1238)  评论(0编辑  收藏  举报

导航