Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#UDP跟踪器协议-无法接收数据_C#_Udp_Protocols_Tracker - Fatal编程技术网

C#UDP跟踪器协议-无法接收数据

C#UDP跟踪器协议-无法接收数据,c#,udp,protocols,tracker,C#,Udp,Protocols,Tracker,你们能告诉我为什么我不能接收数据吗。 我使用的UDP跟踪器协议来自: 这是我试图从中获取信息时的代码udp://tracker.openbittorrent.com:80/announce Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); client.Connect("tracker.openbittorrent.com", 8

你们能告诉我为什么我不能接收数据吗。
我使用的UDP跟踪器协议来自:

这是我试图从中获取信息时的代码udp://tracker.openbittorrent.com:80/announce

        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();
socketclient=新套接字(AddressFamily.InterNetwork,SocketType.Dgram,ProtocolType.Udp);
client.Connect(“tracker.openbittorrent.com”,80);
字节[]conPacket=新字节[16];
字节[]临时=位转换器.GetBytes(0x41727101980);
字节[]temp2=位转换器.GetBytes(0);
byte[]temp3=BitConverter.GetBytes(new Random().Next(065535));
拷贝(temp,0,conPacket,0,8);
复制(temp2,0,conPacket,8,4);
复制(temp3,0,conPacket,12,4);
发送(conPacket);
字节[]recvPacket=新字节[16];

client.Receive(recvPacket) 好的,经过几个小时的研究,我最终决定使用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);
现在开始工作了