void peer_UnchokeMessageReceived(object sender, UnchokeMessage e) { ShowMessage("{0}:Received {1}", sender, e); Peer peer = (Peer)(sender); RequestNextBlocks(peer, _maxRequestPieceNumber); }
protected virtual void HandleUnchokeMessage(PeerId id, UnchokeMessage message) { id.IsChoking = false; // Add requests to the peers message queue manager.PieceManager.AddPieceRequests(id); }
/// <summary> /// 构造函数 /// </summary> static MessageFactory() { chokeMessage = new ChokeMessage(); unchokeMessage = new UnchokeMessage(); interestedMessage = new InterestedMessage(); notInterestedMessage = new NotInterestedMessage(); }
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); }
/// <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)); } }
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(); } }
protected override void HandleUnchoke(UnchokeMessage unchoke, PeerState peer) { base.HandleUnchoke(unchoke, peer); SendBlockRequests(peer); }
public void UnchokeEncoding() { int length = new UnchokeMessage().Encode(buffer, offset); Assert.AreEqual("00-00-00-01-01", BitConverter.ToString(buffer, offset, length)); }
protected virtual void HandleUnchoke(UnchokeMessage unchoke, PeerState peer) { peer.AmChoked = false; }
protected virtual void HandleUnchokeMessage(PeerId id, UnchokeMessage message) { id.IsChoking = false; // Add requests to the peers message queue _manager.PieceManager.AddPieceRequests(id); }