public override BinaryMessageBase Read()
        {
            byte[]            buffer          = new byte[EncodingConstants.MAX_MESSAGE_LENGTH];
            BinaryMessageBase receivedMessage = null;

            lock (ReadMonitor)
            {
                try
                {
                    buffer          = _communicator.Read();
                    receivedMessage = MessageManager.Decode(buffer);
                }
                catch (SocketException)
                {
                    Close();
                }
                catch (IOException)
                {
                    Close();
                }
                catch (BinaryEncodingException)
                {
                    Console.WriteLine("BinaryEncodingException: Decode");
                }
            }

            return(receivedMessage);
        }
        public void ListenMessages()
        {
            lock (SocketMonitor)
            {
                IsListeningMessages = true;

                do
                {
                    BinaryMessageBase receivedMessage = Read();

                    if (MessageReceivedEvent != null)
                    {
                        MessageReceivedEvent(this, new MessageEventArgs(receivedMessage));
                    }
                } while (IsListeningMessages);
            }
        }
        public void ListenOneMessage()
        {
            if (IsListeningMessages)
            {
                return;
            }

            lock (SocketMonitor)
            {
                BinaryMessageBase receivedMessage = Read();

                if (MessageReceivedEvent != null)
                {
                    MessageReceivedEvent(this, new MessageEventArgs(receivedMessage));
                }
            }
        }
 public override void Send(BinaryMessageBase message)
 {
     lock (SendMonitor)
     {
         try
         {
             var buffer = MessageManager.Encode(message);
             _communicator.Write(buffer);
         }
         catch (SocketException)
         {
             Close();
         }
         catch (IOException)
         {
             Close();
         }
         catch (BinaryEncodingException)
         {
             Console.WriteLine("BinaryEncodingException: Encode");
         }
     }
 }
 public byte[] GetEncoding(BinaryMessageBase message)
 {
     return message.GetEncoding();
 }
Beispiel #6
0
 public void SendToSuperPeer(BinaryMessageBase message)
 {
     _superPeerClient.Send(message);
 }
 public override void Send(BinaryMessageBase message)
 {
     throw new System.NotImplementedException();
 }
 public MessageEventArgs(BinaryMessageBase message)
 {
     Message = message;
 }
Beispiel #9
0
 public byte[] GetEncoding(BinaryMessageBase message)
 {
     return(message.GetEncoding());
 }
 public abstract void Send(BinaryMessageBase message);