c#下實現ping操作代碼

cymt 9年前發布 | 4K 次閱讀 C#

c#下實現ping操作代碼
這里我寫的是一個窗體程序。首先添加textbox,listbox,button控件,其中textbox錄入域名或IP,listbox顯示結果.

 private void button1_Click(object sender, EventArgs e)
  {
  Ping p1 = new Ping(); //只是演示,沒有做錯誤處理
  PingReply reply = p1.Send(this.textBox1.Text);//阻塞方式 displayReply(reply); //顯示結果 } private void displayReply(PingReply reply) //顯示結果
  {
  StringBuilder sbuilder ;
  if (reply.Status == IPStatus.Success)
  {
  sbuilder = new StringBuilder();
  sbuilder.Append(string.Format("Address: {0} ", reply.Address.ToString ()));
  sbuilder.Append(string.Format("RoundTrip time: {0} ", reply.RoundtripTime));
  sbuilder.Append(string.Format("Time to live: {0} ", reply.Options.Ttl));
  sbuilder.Append(string.Format("Don't fragment: {0} ", reply.Options.DontFragment));
  sbuilder.Append(string.Format("Buffer size: {0} ", reply.Buffer.Length));
  listBox1.Items.Add(sbuilder.ToString());
  }
  }[nextpage]
  也可以做異步的處理,修改button1_click,并添加PingCompletedCallBack方法
  private void button1_Click(object sender, EventArgs e)
  {
  Ping p1 = new Ping();
  p1.PingCompleted += new PingCompletedEventHandler(this.PingCompletedCallBack);//設置PingCompleted事件處理程序
  p1.SendAsync(this.textBox1.Text, null);
  }
  private void PingCompletedCallBack(object sender, PingCompletedEventArgs e)
  {
  if (e.Cancelled)
  {
  listBox1.Items.Add("Ping Canncel");
  return;
  }
  if (e.Error != null)
  {
  listBox1.Items.Add(e.Error.Message);
  return;
  }
  StringBuilder sbuilder;
  PingReply reply = e.Reply;
  if (reply.Status == IPStatus.Success)
  {
  sbuilder = new StringBuilder();
  sbuilder.Append(string.Format("Address: {0} ", reply.Address.ToString()));
  sbuilder.Append(string.Format("RoundTrip time: {0} ", reply.RoundtripTime));
  sbuilder.Append(string.Format("Time to live: {0} ", reply.Options.Ttl));
  sbuilder.Append(string.Format("Don't fragment: {0} ", reply.Options.DontFragment));
  sbuilder.Append(string.Format("Buffer size: {0} ", reply.Buffer.Length));
  listBox1.Items.Add(sbuilder.ToString());
  }
  }

 本文由用戶 cymt 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!