【问题标题】:C# UDP Tracker Protocol - Cannot receive dataC# UDP 跟踪器协议 - 无法接收数据
【发布时间】:2013-04-08 15:12:14
【问题描述】:

你们能告诉我为什么我无法接收数据吗?
我使用的 UDP Tracker 协议来自:http://www.bittorrent.org/beps/bep_0015.html

这是我尝试从 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();

【问题讨论】:

    标签: c# udp protocols tracker


    【解决方案1】:

    好的,经过几个小时的研究,我最终决定使用 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);
    

    现在可以使用了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-17
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 2015-11-26
      • 1970-01-01
      • 2013-11-08
      • 2011-05-13
      相关资源
      最近更新 更多