Example #1
0
 protected void ProcessReceive(SocketAsyncEventArgs ReceiveEventArgs)
 {
     if (_ChannelIsClosed)
     {
         return;
     }
     try
     {
         ActiveDateTime = DateTime.Now;
         if (ReceiveEventArgs.SocketError != SocketError.Success ||
             ReceiveEventArgs.BytesTransferred == 0)
         {
             Log.Error(ReceiveEventArgs.SocketError.ToString());
             Close();
             return;
         }
         Log.Debug("Receive " + ReceiveEventArgs.BytesTransferred + " bytes");
         if (_UseSSL)
         {
             _StreamSSL.Decrypt(_RecvBuffer, 0, ReceiveEventArgs.BytesTransferred);
         }
         else
         {
             _RecvStream.Write(_RecvBuffer, 0, ReceiveEventArgs.BytesTransferred);
             ProcessReceivedData();
         }
     }
     catch (Exception ex)
     {
         Close(ex);
     }
     StartReceive();
 }
Example #2
0
 /// <summary>
 ///
 /// </summary>
 void ThreadReceive()
 {
     byte[] buffer = new byte[4096];
     do
     {
         int bytes = _ClientSocket.Receive(buffer);
         if (bytes <= 0)
         {
             break;
         }
         _StreamSSL.Decrypt(buffer, 0, bytes);
     }while (true);
 }
Example #3
0
        protected override void ProcessReceive(SocketAsyncEventArgs ReceiveEventArgs)
        {
            ActiveDateTime = DateTime.Now;
            if (ReceiveEventArgs.SocketError != SocketError.Success ||
                ReceiveEventArgs.BytesTransferred == 0)
            {
                Log.Error(ReceiveEventArgs.SocketError.ToString());
                Close();
                return;
            }
            Log.Debug("Receive " + ReceiveEventArgs.BytesTransferred + " bytes");

            _StreamSSL.Decrypt(_RecvBuffer, 0, ReceiveEventArgs.BytesTransferred);
            StartReceive();
        }
Example #4
0
        public bool Start()
        {
            Listener.Start();
            client = Listener.AcceptSocket();
            if (!_StreamSSL.AuthenticateAsServer(client, X509Cert))
            {
                return(false);
            }
            byte[] buffer = new byte[4096];
            do
            {
                int bytes = client.Receive(buffer, 0, buffer.Length, SocketFlags.None);
                if (bytes <= 0)
                {
                    break;
                }
                if (!_StreamSSL.Decrypt(buffer, 0, bytes))
                {
                    break;
                }
            }while (true);

            return(false);
        }