用HttpWebRequest发送特定的数据包

用HttpWebRequest发送特定的数据包

问题描述:

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

这取决于你的意思是“具体格式化”。 HttpWebRequest是一个围绕HTTP协议的.Net包装,它本质上不是UDP,所以你不能自定义它发送的数据包,而不是修改对象数据,比如标题等。

+0

我明白了。这是否意味着没有其他方式可以发送比HttpWebRequest提供的更多定制数据包,而无需使用套接字?谢谢 – Skoder 2010-11-22 15:53:44

你应该看看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);