当前位置: 首页>>代码示例>>C#>>正文


C# Socket.SafeCloseClientSocket方法代码示例

本文整理汇总了C#中Socket.SafeCloseClientSocket方法的典型用法代码示例。如果您正苦于以下问题:C# Socket.SafeCloseClientSocket方法的具体用法?C# Socket.SafeCloseClientSocket怎么用?C# Socket.SafeCloseClientSocket使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Socket的用法示例。


在下文中一共展示了Socket.SafeCloseClientSocket方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: AcceptNewClient

        protected override void AcceptNewClient(ISocketListener listener, Socket client)
        {
            if(Interlocked.Increment(ref m_CurrentConnectionCount) > AppServer.Config.MaxConnectionNumber)
            {
                Interlocked.Decrement(ref m_CurrentConnectionCount);
                Async.Run(() => client.SafeCloseClientSocket(AppServer.Logger));
                return;
            }

            var session = RegisterSession(client, new AsyncStreamSocketSession(client));

            if (session == null)
            {
                Interlocked.Decrement(ref m_CurrentConnectionCount);
                Async.Run(() => client.SafeCloseClientSocket(AppServer.Logger));
                return;
            }

            session.Closed += new EventHandler<SocketSessionClosedEventArgs>(session_Closed);
            Async.Run(() => session.Start());
        }
开发者ID:xxjeng,项目名称:nuxleus,代码行数:21,代码来源:AsyncStreamSocketServer.cs

示例2: AcceptNewClient

        protected override void AcceptNewClient(ISocketListener listener, Socket client)
        {
            if (IsStopped)
                return;

            //Get the socket for the accepted client connection and put it into the 
            //ReadEventArg object user token
            SocketAsyncEventArgsProxy socketEventArgsProxy;
            if (!m_ReadWritePool.TryPop(out socketEventArgsProxy))
            {
                Async.Run(() => client.SafeCloseClientSocket(AppServer.Logger));
                if (AppServer.Logger.IsErrorEnabled)
                    AppServer.Logger.ErrorFormat("Max connection number {0} was reached!", AppServer.Config.MaxConnectionNumber);
                return;
            }

            ISocketSession session;

            var security = listener.Info.Security;

            if (security == SslProtocols.None)
                session = RegisterSession(client, new AsyncSocketSession(client, socketEventArgsProxy));
            else
                session = RegisterSession(client, new AsyncStreamSocketSession(client, security, socketEventArgsProxy));

            if (session == null)
            {
                socketEventArgsProxy.Reset();
                this.m_ReadWritePool.Push(socketEventArgsProxy);
                Async.Run(() => client.SafeCloseClientSocket(AppServer.Logger));
                return;
            }

            session.Closed += session_Closed;
            Async.Run(() => session.Start());
        }
开发者ID:xxjeng,项目名称:nuxleus,代码行数:36,代码来源:AsyncSocketServer.cs


注:本文中的Socket.SafeCloseClientSocket方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。