Exemplo n.º 1
0
        public AsyncTransportChannel(SocketAsyncEventArgs receiveEventArgs, SocketAsyncEventArgs sendEventArgs, NetworkSettings settings)
        {
            _receiveSAEA = receiveEventArgs;
            _sendSAEA = sendEventArgs;
            _networkSettings = settings;
            _packetReceiverLogic = new PacketReceiverLogic(settings.BufferSize, settings.ReceivePrefixLength);
            _packetSenderLogic = new PacketSenderLogic(settings.BufferSize, settings.SendPrefixLength);

            Initialize();
        }
Exemplo n.º 2
0
 static void ListenAndEchoToConsole(object arg)
 {
     lock (lockObject)
     {
         Stream tcpStream = (Stream)arg;
         byte[] buffer = new byte[50];
         PacketReceiverLogic receiverLogic = new PacketReceiverLogic(50, 4);
         IMessageSerializer serializer = new MsgPackSerializer(new TypeResolver());
         while (true)
         {
             try
             {
                 int readBytes = tcpStream.Read(buffer, 0, 50);
                 lock (lockObject)
                 {
                     Buffer.BlockCopy(buffer, 0, receiverLogic.IncomingDataBuffer, 0, readBytes);
                     receiverLogic.TransferredBytesCount = readBytes;
                     receiverLogic.Process();
                 }
                 foreach (var output in receiverLogic.Output)
                 {
                     if (output.Length > 0)
                     {
                         //TestResponse message = (TestResponse)serializer.Deserialize(output);
                         //Console.WriteLine("Response: " + message.MessageType + " " + message.Number);
                     }
                 }
             }
             catch (ObjectDisposedException ex){}
             catch (IOException ex){}
             catch (InvalidOperationException ex){}
             catch (Exception ex)
             {
                 Console.WriteLine("OOPS! An error happened!");
                 Console.WriteLine(ex.ToString());
             }
         }
     }
 }