/// <summary> /// 生成一个 GotPeer 消息。 /// </summary> /// <param name="localEP">消息源的端点。</param> /// <param name="infoHash">用户所持有的 InfoHash。</param> /// <param name="bitTorrentClientPort">用户所监听的端口(即 BitTorrent 客户端的监听端口)。</param> /// <returns>创建的 GotPeer 消息。</returns> public static KMessage GotPeer(KEndPoint localEP, InfoHash infoHash, ushort bitTorrentClientPort) { var message = KMessage.CreateEmptyMessage(); message.Header.Code = KMessageCode.GotPeer; message.Header.SourceEndPoint = localEP; message.Header.MessageID = GetMessageHash(); BEncodedDictionary data = new BEncodedDictionary(); data.Add("infohash", infoHash.ToByteArray()); data.Add("bt client port", bitTorrentClientPort); message.Content = KMessageContent.FromByteArray(data.Encode()); return(message); }