Bittorrent 连接 ID 不匹配

问题描述 投票:0回答:1

我正在尝试向 UDP 跟踪器发送连接消息。当我发送以下连接消息时。我收到一条包含错误的消息:连接 ID 不匹配。

我正在使用这个规格

        // CONNECTION MESSAGE
        int action = 0;
        long connectionID = 0x41727101980;          
        int sessionId = new Random().Next();

        List<byte> message = new List<byte>();
        message.AddRange(BitConverter.GetBytes(connectionID));
        message.AddRange(BitConverter.GetBytes(action));
        message.AddRange(BitConverter.GetBytes(sessionId));

        byte[] messageData = message.ToArray();
        if (BitConverter.IsLittleEndian)
            Array.Reverse(messageData);


        int n = 0;
        while(!response)
        {
            Thread.Sleep(15 * 2 * n++ * 1000);
            Send(messageData);
        }
c# udp bittorrent
1个回答
0
投票

我今天发现了问题,我首先必须将最后一个元素放入消息中,这样当数组反转以转换为 Big Endian 时,它将是第一个元素。

message.AddRange(BitConverter.GetBytes(sessionId)); //last element
message.AddRange(BitConverter.GetBytes(action)); 
message.AddRange(BitConverter.GetBytes(connectionID)); //first element
© www.soinside.com 2019 - 2024. All rights reserved.