c# UDP跟踪协议-无法接收数据
本文关键字:数据 UDP 跟踪 协议 | 更新日期: 2023-09-27 18:08:08
你们能告诉我为什么我收不到数据吗?
我使用的UDP跟踪协议来自:http://www.bittorrent.org/beps/bep_0015.html
这是我的代码,当我试图从udp获取信息://tracker.openbittorrent.com:80/宣布
Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
client.Connect("tracker.openbittorrent.com", 80);
byte[] conPacket = new byte[16];
byte[] temp = BitConverter.GetBytes(0x41727101980);
byte[] temp2 = BitConverter.GetBytes(0);
byte[] temp3 = BitConverter.GetBytes(new Random().Next(0, 65535));
Array.Copy(temp, 0, conPacket, 0, 8);
Array.Copy(temp2, 0, conPacket, 8, 4);
Array.Copy(temp3, 0, conPacket, 12, 4);
client.Send(conPacket);
byte[] recvPacket = new byte[16];
client.Receive(recvPacket); <--------------- Waiting for response
client.Close();
好了,经过几个小时的研究,我最终决定使用Wireshark来查找请求数据包。
我发现我的包的顺序不对。, (
这是新的代码。
Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
client.Connect(tracker, port);
byte[] conPacket = new byte[16];
byte[] temp = BitConverter.GetBytes(0x41727101980).Reverse().ToArray();
byte[] temp2 = BitConverter.GetBytes(0);
byte[] temp3 = BitConverter.GetBytes(new Random().Next(0, 65535));
Array.Copy(temp, 0, conPacket, 0, 8);
Array.Copy(temp2, 0, conPacket, 8, 4);
Array.Copy(temp3, 0, conPacket, 12, 4);
//Connect to the protocol
client.Send(conPacket);
byte[] response = new byte[16];
client.Receive(response);