private bool HandleReceiveQueue() { TunnelDataMessage[] tdmsgs = null; lock ( ReceiveQueue ) { if (ReceiveQueue.Count == 0) { return(true); } if (ReceiveQueue.Any(mq => mq.MessageType == I2NPMessage.MessageTypes.TunnelData)) { var removelist = ReceiveQueue.Where(mq => mq.MessageType == I2NPMessage.MessageTypes.TunnelData); tdmsgs = removelist.Select(mq => (TunnelDataMessage)mq.Message).ToArray(); } ReceiveQueue.Clear(); // Just drop the non-TunnelData } if (tdmsgs != null) { return(HandleTunnelData(tdmsgs)); } return(true); }
/// <summary> /// /// </summary> internal ClientSocketManager( Listener listener, ServiceHandler serviceHandler, ReceiveQueue receiveBuffer ) { if ( listener == null ) throw new Exception( "ClientSocketHandler.ClientSocketManager(...) - listener == null error!" ); if ( serviceHandler == null ) throw new Exception( "ClientSocketHandler.ClientSocketManager(...) - serviceHandle == null error!" ); if ( receiveBuffer == null ) throw new Exception( "ClientSocketHandler.ClientSocketManager(...) - receiveBuffer == null error!" ); m_Listener = listener; m_ServiceHandle = serviceHandler; m_ReceiveBuffer = receiveBuffer; { // 清空数据 m_ReceiveBuffer.Clear(); } m_ServiceHandle.EventProcessData += new EventHandler<ProcessDataAtServerEventArgs>( this.OnListenerProcessMessageBlock ); m_ServiceHandle.EventDisconnect += new EventHandler<DisconnectAtServerEventArgs>( this.OnListenerDisconnect ); // 初始化数据 表示还没调用过Free(...)函数 m_LockFree.SetValid(); }
public void ClearTest() { ReceiveQueue target = new ReceiveQueue(); // TODO: 初始化为适当的值 target.Clear(); Assert.Inconclusive("无法验证不返回值的方法。"); }
public void Disconnect() { if (_port.IsOpen) { _port.Close(); } IsConnected = false; ReceiveQueue.Clear(); }
public void ProcessMessages() { MemoryStream stream; lock (ReceiveQueue) { stream = new MemoryStream(ReceiveQueue.ToArray()); ReceiveQueue.Clear(); } ReceivedMessages = Message.FromPackedBytes(stream); }
internal void Stop() { DhtMessageFactory = new DhtMessageFactory(); SendQueue.Clear(); ReceiveQueue.Clear(); WaitingResponse.Clear(); WaitingResponseTimedOut.Clear(); if (Listener.Status != ListenerStatus.NotListening) { Listener.Stop(); } }
protected virtual void OnDisconnect(TCPClient client) { if (this.ProgramRunning) { ErrorLog.Warn("TCP Client to {0} disconnected!", client.AddressClientConnectedTo); _sendQueue.Clear(); ReceiveQueue.Clear(); if (_shouldReconnect) { #if DEBUG CrestronConsole.PrintLine("Retrying connection to {0}", _client.AddressClientConnectedTo); #endif this.Connect(_shouldReconnect); } } }
/// <summary> /// /// </summary> internal ClientSocketManager( Listener listener, ServiceHandler serviceHandler, ReceiveQueue receiveBuffer ) { if ( listener == null ) throw new ArgumentNullException( "listener", "ClientSocketHandler.ClientSocketManager(...) - listener == null error!" ); if ( serviceHandler == null ) throw new ArgumentNullException( "serviceHandler", "ClientSocketHandler.ClientSocketManager(...) - serviceHandle == null error!" ); if ( receiveBuffer == null ) throw new ArgumentNullException( "receiveBuffer", "ClientSocketHandler.ClientSocketManager(...) - receiveBuffer == null error!" ); m_Listener = listener; m_ServiceHandle = serviceHandler; m_ReceiveBuffer = receiveBuffer; { // ������� m_ReceiveBuffer.Clear(); } m_ServiceHandle.EventProcessData += OnListenerProcessMessageBlock; m_ServiceHandle.EventDisconnect += OnListenerDisconnect; // ��ʼ������ ��ʾ��û���ù�Free(...)���� m_LockFree.SetValid(); }
/// <summary> /// /// </summary> internal ClientSocketManager( Connecter connecter, ConnectHandler connectHandler, ReceiveQueue receiveBuffer ) { if ( connecter == null ) throw new ArgumentNullException( "ClientSocketHandler.ClientSocketManager(...) - listener == null error!" ); if ( connectHandler == null ) throw new ArgumentNullException( "ClientSocketHandler.ClientSocketManager(...) - serviceHandle == null error!" ); if ( receiveBuffer == null ) throw new ArgumentNullException( "receiveBuffer", "ClientSocketHandler.ClientSocketManager(...) - receiveBuffer == null error!" ); m_Connecter = connecter; m_ConnectHandle = connectHandler; m_ReceiveBuffer = receiveBuffer; { // ������� m_ReceiveBuffer.Clear(); } // ��ʼ������ ��ʾ��û���ù�Free(...)���� m_LockFree.SetValid(); }
/// <summary> /// /// </summary> internal ClientSocketManager( Connecter connecter, ConnectHandler connectHandler, ReceiveQueue receiveBuffer ) { if ( connecter == null ) throw new Exception( "ClientSocketHandler.ClientSocketManager(...) - listener == null error!" ); if ( connectHandler == null ) throw new Exception( "ClientSocketHandler.ClientSocketManager(...) - serviceHandle == null error!" ); if ( receiveBuffer == null ) throw new Exception( "ClientSocketHandler.ClientSocketManager(...) - receiveBuffer == null error!" ); m_Connecter = connecter; m_ConnectHandle = connectHandler; m_ReceiveBuffer = receiveBuffer; { // 清空数据 m_ReceiveBuffer.Clear(); } // 初始化数据 表示还没调用过Free(...)函数 m_LockFree.SetValid(); }