2010-11-22 38 views
1

嘿。是否有可能從C#應用程序發送數據包而不使用套接字?我想使用WebClient或HttpWebRequest來將特定格式的數據包發送到服務器。我見過的例子傾向於使用UDP客戶端。謝謝用HttpWebRequest發送特定的數據包

回答

1

這取決於你的意思是「具體格式化」。 HttpWebRequest是一個圍繞HTTP協議的.Net包裝,它本質上不是UDP,所以你不能自定義它發送的數據包,而不是修改對象數據,比如標題等。

+0

我明白了。這是否意味着沒有其他方式可以發送比HttpWebRequest提供的更多定製數據包,而無需使用套接字?謝謝 – Skoder 2010-11-22 15:53:44

0

你應該看看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);