【发布时间】:2010-11-22 15:44:24
【问题描述】:
嘿。是否可以在不使用套接字的情况下从 C# 应用程序发送数据包?我想使用 WebClient 或 HttpWebRequest 将特定格式的数据包发送到服务器。我见过的示例倾向于使用 UDP 客户端。谢谢
【问题讨论】:
标签: c# httpwebrequest webclient packet
嘿。是否可以在不使用套接字的情况下从 C# 应用程序发送数据包?我想使用 WebClient 或 HttpWebRequest 将特定格式的数据包发送到服务器。我见过的示例倾向于使用 UDP 客户端。谢谢
【问题讨论】:
标签: c# httpwebrequest webclient packet
这取决于“特定格式”的含义。 HttpWebRequest 是围绕 HTTP 协议的 .Net 包装器,本质上不是 UDP,因此除了修改标头等对象数据外,您无法自定义它发送的数据包。
【讨论】:
您应该查看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);
【讨论】: