Ejemplo n.º 1
0
 /// <summary>
 /// 构造函数
 /// </summary>
 static MessageFactory()
 {
     chokeMessage         = new ChokeMessage();
     unchokeMessage       = new UnchokeMessage();
     interestedMessage    = new InterestedMessage();
     notInterestedMessage = new NotInterestedMessage();
 }
Ejemplo n.º 2
0
        void peer_InterestedMessageReceived(object sender, InterestedMessage e)
        {
            ShowMessage("{0}:Received {1}", sender, e);
            Peer peer = (Peer)(sender);

            if (peer.AmChoking)
            {
                peer.SendUnchokeMessageAsync();
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Processes the received message.
        /// </summary>
        /// <param name="message">The message.</param>
        private void ProcessRecievedMessage(InterestedMessage message)
        {
            message.CannotBeNull();

            if (this.HandshakeState == HandshakeState.SendAndReceived)
            {
                this.EnqueueDownloadMessage(message);
            }
            else
            {
                this.OnCommunicationErrorOccurred(this, new PeerCommunicationErrorEventArgs("Invalid message sequence.", true));
            }
        }
Ejemplo n.º 4
0
        public void InterestedMessage_TryDecode()
        {
            InterestedMessage message;
            int  offsetFrom = 0;
            bool isIncomplete;

            byte[] data = "0000000102".ToByteArray();

            if (InterestedMessage.TryDecode(data, ref offsetFrom, data.Length, out message, out isIncomplete))
            {
                Assert.AreEqual(5, message.Length);
                Assert.AreEqual(false, isIncomplete);
                CollectionAssert.AreEqual(data, message.Encode());
            }
            else
            {
                Assert.Fail();
            }
        }
Ejemplo n.º 5
0
 protected override void HandleInterested(InterestedMessage interested, PeerState peer)
 {
     base.HandleInterested(interested, peer);
     peer.IsChoked = false;
     SendMessage(peer, new UnchokeMessage());
 }
Ejemplo n.º 6
0
 protected virtual void HandleInterestedMessage(PeerId id, InterestedMessage message)
 {
     id.IsInterested = true;
 }
Ejemplo n.º 7
0
 protected override void HandleInterestedMessage(PeerId id, InterestedMessage message)
 {
     // Nothing
 }
Ejemplo n.º 8
0
        public void InterestedEncoding()
        {
            int length = new InterestedMessage().Encode(buffer, offset);

            Assert.AreEqual("00-00-00-01-02", BitConverter.ToString(buffer, offset, length));
        }
Ejemplo n.º 9
0
 protected virtual void HandleInterested(InterestedMessage interested, PeerState peer)
 {
     peer.IsInterested = true;
 }
Ejemplo n.º 10
0
 protected override void HandleInterested(InterestedMessage interested, PeerState peer)
 {
     base.HandleInterested(interested, peer);
     peer.IsChoked = false;
     SendMessage(peer, new UnchokeMessage());
 }
Ejemplo n.º 11
0
 protected virtual void HandleInterestedMessage(PeerId id, InterestedMessage message)
 {
     id.IsInterested = true;
 }
Ejemplo n.º 12
0
 protected virtual void HandleInterested(InterestedMessage interested, PeerState peer)
 {
     peer.IsInterested = true;
 }