Exemplo n.º 1
0
        void peer_UnchokeMessageReceived(object sender, UnchokeMessage e)
        {
            ShowMessage("{0}:Received {1}", sender, e);
            Peer peer = (Peer)(sender);

            RequestNextBlocks(peer, _maxRequestPieceNumber);
        }
Exemplo n.º 2
0
        protected virtual void HandleUnchokeMessage(PeerId id, UnchokeMessage message)
        {
            id.IsChoking = false;

            // Add requests to the peers message queue
            manager.PieceManager.AddPieceRequests(id);
        }
Exemplo n.º 3
0
 /// <summary>
 /// 构造函数
 /// </summary>
 static MessageFactory()
 {
     chokeMessage         = new ChokeMessage();
     unchokeMessage       = new UnchokeMessage();
     interestedMessage    = new InterestedMessage();
     notInterestedMessage = new NotInterestedMessage();
 }
Exemplo n.º 4
0
 protected virtual void HandleUnchokeMessage(PeerId id, UnchokeMessage message)
 {
     id.IsChoking = false;
     logger.Info("Peer {0} unchokes us, requesting data", id);
     // Add requests to the peers message queue
     manager.PieceManager.AddPieceRequests(id);
 }
Exemplo n.º 5
0
        /// <summary>
        /// Processes the received message.
        /// </summary>
        /// <param name="message">The message.</param>
        private void ProcessRecievedMessage(UnchokeMessage message)
        {
            message.CannotBeNull();

            if (this.HandshakeState == HandshakeState.SendAndReceived)
            {
                this.EnqueueDownloadMessage(message);
            }
            else
            {
                this.OnCommunicationErrorOccurred(this, new PeerCommunicationErrorEventArgs("Invalid message sequence.", true));
            }
        }
Exemplo n.º 6
0
        public void UnchokeMessage_TryDecode()
        {
            UnchokeMessage message;
            int            offset = 0;
            bool           isIncomplete;

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

            if (UnchokeMessage.TryDecode(data, ref offset, data.Length, out message, out isIncomplete))
            {
                Assert.AreEqual(5, message.Length);
                Assert.AreEqual(false, isIncomplete);
                Assert.AreEqual(data.Length, offset);
                CollectionAssert.AreEqual(data, message.Encode());
            }
            else
            {
                Assert.Fail();
            }
        }
Exemplo n.º 7
0
 protected override void HandleUnchoke(UnchokeMessage unchoke, PeerState peer)
 {
     base.HandleUnchoke(unchoke, peer);
     SendBlockRequests(peer);
 }
Exemplo n.º 8
0
        public void UnchokeEncoding()
        {
            int length = new UnchokeMessage().Encode(buffer, offset);

            Assert.AreEqual("00-00-00-01-01", BitConverter.ToString(buffer, offset, length));
        }
Exemplo n.º 9
0
 protected virtual void HandleUnchoke(UnchokeMessage unchoke, PeerState peer)
 {
     peer.AmChoked = false;
 }
Exemplo n.º 10
0
        protected virtual void HandleUnchokeMessage(PeerId id, UnchokeMessage message)
        {
            id.IsChoking = false;

            // Add requests to the peers message queue
            _manager.PieceManager.AddPieceRequests(id);
        }