【问题标题】:Send specific packets with HttpWebRequest使用 HttpWebRequest 发送特定数据包
【发布时间】:2010-11-22 15:44:24
【问题描述】:

嘿。是否可以在不使用套接字的情况下从 C# 应用程序发送数据包?我想使用 WebClient 或 HttpWebRequest 将特定格式的数据包发送到服务器。我见过的示例倾向于使用 UDP 客户端。谢谢

【问题讨论】:

    标签: c# httpwebrequest webclient packet


    【解决方案1】:

    这取决于“特定格式”的含义。 HttpWebRequest 是围绕 HTTP 协议的 .Net 包装器,本质上不是 UDP,因此除了修改标头等对象数据外,您无法自定义它发送的数据包。

    【讨论】:

    • 我明白了。这是否意味着没有其他方法可以在不使用套接字的情况下发送比 HttpWebRequest 提供的更定制化的数据包?谢谢
    • 你到底想做什么?
    • 喜欢网络唤醒?好的。这绝对必须在套接字中完成......看看这个例子是否适合你......community.bartdesmet.net/blogs/bart/archive/2006/04/02/…
    • 我遇到了,但它使用套接字。我只是好奇它是否可以通过 HTTP 完成,但显然不能。感谢您的帮助。
    【解决方案2】:

    您应该查看IPEndPoint 类,该类旨在通过IP 和端口地址将数据发送到网络端点。这是一个简单的示例,有关更多详细信息,请参阅链接以及带有错误检查的更长示例。

    byte[] data = new byte[1024];
    string payload = "<Enter Your Payload Here>";
    IPEndPoint ep = new IPEndPoint("127.0.0.1", 1234); //IP + Port
    
    Socket remoteServer = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
    data = Encoding.ASCII.GetBytes(payload);
    remoteServer.SendTo(data, data.Length, SocketFlags.None, ep);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      相关资源
      最近更新 更多