Bittorrent连接ID不匹配

时间:2014-09-30 16:33:29

标签: c# udp bittorrent

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

我正在使用此specification

        // 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);
        }

1 个答案:

答案 0 :(得分:0)

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

message.AddRange(BitConverter.GetBytes(sessionId)); //last element
message.AddRange(BitConverter.GetBytes(action)); 
message.AddRange(BitConverter.GetBytes(connectionID)); //first element