我試圖與發送UDP HTTP GET請求(因爲從監聽服務器的回覆是不相關的,我不想阻止此程序)UDP數據永不發送?
這是代碼:
System.Net.Sockets.UdpClient client = new System.Net.Sockets.UdpClient();
client.Connect("www.domainname.com", 80);
string request_header = "GET /ping.php HTTP/1.1\r\nHost: www.domainname.com\r\n\r\n";
byte[] stre = System.Text.Encoding.ASCII.GetBytes(request_header);
client.Send(stre, stre.Length);
System.Net.IPEndPoint RemoteIpEndPoint = new System.Net.IPEndPoint(System.Net.IPAddress.Any, 0);
byte[] receiveBytes = client.Receive(ref RemoteIpEndPoint);
string returnData = System.Text.Encoding.ASCII.GetString(receiveBytes);
client.Close();
首先,請求似乎沒有在服務器上被接收到,所以我想在發送時可能會出現錯誤? 其次,程序掛在client.Receive(參考RemoteIpEndPoint)上,並在那裏等待。似乎沒有收到任何數據。
我曾試圖改變......
System.Net.IPEndPoint(System.Net.IPAddress.Any, 0);
到...
System.Net.IPEndPoint(System.Net.IPAddress.Any, 80);
...但沒有運氣。
HTTP over UDP,認真嗎?服務器是否在端口80上偵聽UDP請求?我對此表示懷疑。只需使用TCP並完成它。 – 2011-02-25 15:21:57
好吧,所以UDP可能是錯誤的方式呢?我真正想要的是以最少的流程消耗方式來發送GET請求(不阻塞發送客戶端) – hbruce 2011-02-25 16:09:53