/// <summary>
        /// TCP 客户端套接字初始化处理
        /// </summary>
        /// <param name="parameter"></param>
        private void onClientSocket(AutoCSer.Net.TcpServer.ClientSocketEventParameter parameter)
        {
            Abstract.DistributionConsumerStreamProcessor oldProcesser = Processor;
            switch (parameter.Type)
            {
            case AutoCSer.Net.TcpServer.ClientSocketEventParameter.EventType.SetSocket: createProcessor(); break;

            default: Processor = null; break;
            }
            if (oldProcesser != null)
            {
                oldProcesser.Free();
            }
        }
示例#2
0
 /// <summary>
 /// TCP 客户端套接字初始化处理
 /// </summary>
 /// <param name="socket"></param>
 private void onClientSocket(AutoCSer.Net.TcpServer.ClientSocketBase socket)
 {
     Abstract.DistributionConsumerStreamProcessor oldProcesser = Processor;
     if (socket != null)
     {
         createProcessor();
     }
     else
     {
         Processor = null;
     }
     if (oldProcesser != null)
     {
         oldProcesser.Free();
     }
 }
示例#3
0
 /// <summary>
 /// 重启处理器
 /// </summary>
 /// <param name="processor"></param>
 internal void ReStartProcessor(DistributionConsumerStreamProcessor processor)
 {
     if (IsProcessor(processor))
     {
         object setSocketLock = client._TcpClient_.OnSocketLock;
         Monitor.Enter(setSocketLock);
         try
         {
             if (IsProcessor(processor))
             {
                 Processor = null;
                 reStartProcessor();
             }
         }
         finally { Monitor.Exit(setSocketLock); }
     }
     processor.Free();
 }
示例#4
0
 internal bool IsProcessor(DistributionConsumerStreamProcessor processor)
 {
     return(ReferenceEquals(Processor, processor) && isDisposed == 0);
 }