2014-03-03 48 views
-1

我正在處理一個窗體,在其中ping主機。Response.Buffer不起作用

由於某種原因,我不能得到Response.Buffer工作。我嘗試使用HttpContext.Current,並且我也加倍檢查了我添加了對System.WebSystem.Net.NetworkInformation的引用。

下面是代碼:

Ping p = new Ping(); 
PingReply r; 

String s = UserInput; 

r = p.Send(s); 

HttpContext.Current.Response.Buffer = false; 

if (r.Status == IPStatus.Success) 
{ 
    string got = "Ping to " + s.ToString() + "[" + r.Address.ToString() + "] successful - " + r.Buffer.Length.ToString() + " bytes in " + r.RoundtripTime.ToString() + " ms." + "\n"; 
    string ToSave = ToSave + got; 
} 
+2

空引用異常?對於WinForms應用程序,'HttpContext.Current'將是'null'。你爲什麼不試試[MSDN示例]之一(http://msdn.microsoft.com/en-us/library/system.net.networkinformation.ping(v = vs.110).aspx) – musefan

+0

什麼是你想用這個來實現嗎?我也認爲HttpContext主要用於ASP.net。 – Dirk

+0

什麼意思是「它不工作」?您是否收到編譯時或運行時錯誤?如果是這樣,請發佈錯誤消息。 –

回答

1

你正在嘗試做沒有意義。 Ping主機是檢查它是否存在,不發送/接收數據,我認爲你正在嘗試做什麼。

當您想要在兩個客戶端之間進行通信時,那麼TcpClient可能就是您需要的。看看文檔和演示here

如果只是想檢查連接,試試這個:

Ping p = new Ping(); 
PingReply reply = p.Send("www.contoso.com"); 

if (reply.Status == IPStatus.Success) 
{ 
    ... 
} 
+0

我試圖檢查互聯網連接,看看是否有問題:我ping路由器,一個wps bridge和一個dns,來檢查問題出在哪裏。 – user3257285

+0

@ user3257285:請參閱更新。 –