我正在尝试向 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);
}
我今天发现了问题,我首先必须将最后一个元素放入消息中,这样当数组反转以转换为 Big Endian 时,它将是第一个元素。
message.AddRange(BitConverter.GetBytes(sessionId)); //last element
message.AddRange(BitConverter.GetBytes(action));
message.AddRange(BitConverter.GetBytes(connectionID)); //first element