/// <summary> /// 构造函数 /// </summary> static MessageFactory() { chokeMessage = new ChokeMessage(); unchokeMessage = new UnchokeMessage(); interestedMessage = new InterestedMessage(); notInterestedMessage = new NotInterestedMessage(); }
void peer_InterestedMessageReceived(object sender, InterestedMessage e) { ShowMessage("{0}:Received {1}", sender, e); Peer peer = (Peer)(sender); if (peer.AmChoking) { peer.SendUnchokeMessageAsync(); } }
/// <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)); } }
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(); } }
protected override void HandleInterested(InterestedMessage interested, PeerState peer) { base.HandleInterested(interested, peer); peer.IsChoked = false; SendMessage(peer, new UnchokeMessage()); }
protected virtual void HandleInterestedMessage(PeerId id, InterestedMessage message) { id.IsInterested = true; }
protected override void HandleInterestedMessage(PeerId id, InterestedMessage message) { // Nothing }
public void InterestedEncoding() { int length = new InterestedMessage().Encode(buffer, offset); Assert.AreEqual("00-00-00-01-02", BitConverter.ToString(buffer, offset, length)); }
protected virtual void HandleInterested(InterestedMessage interested, PeerState peer) { peer.IsInterested = true; }
protected override void HandleInterested(InterestedMessage interested, PeerState peer) { base.HandleInterested(interested, peer); peer.IsChoked = false; SendMessage(peer, new UnchokeMessage()); }
protected virtual void HandleInterestedMessage(PeerId id, InterestedMessage message) { id.IsInterested = true; }
protected virtual void HandleInterested(InterestedMessage interested, PeerState peer) { peer.IsInterested = true; }