zoukankan      html  css  js  c++  java
  • 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);
                }
            }
  • 相关阅读:
    Bamboo CI 使用的一些记录
    fork 与 branch、clone 的区别
    使用--ignore-scripts解决npm/yarn安装依赖失败问题
    gyp ERR! find VS gyp ERR! find VS msvs_version not set from command line or npm config gyp ERR! find
    sdk manager 打不开解决方法
    appium
    北京幼升小
    MySQL中limit的问题
    初始社保费管理客户端的单位编号
    flutter BackdropFilter的毛玻璃效果使用
  • 原文地址:https://www.cnblogs.com/chuncn/p/1722327.html
Copyright © 2011-2022 走看看