c#下實現ping操作

來源:互聯網
上載者:User

  首先添加textbox,listbox,button控制項,其中textbox錄入網域名稱或IP,listbox顯示結果.

  在button1_click事件鍵入

  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());

  }

  }

  也可以做非同步處理,修改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());

  }

  }

相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。