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