4

ping を取得する方法を見つけようとしていたところ、次のコードが見つかりました。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Net.NetworkInformation;
using System.IO;
using System.Configuration;
using System.Web;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                Ping ping = new Ping();
                PingReply pingreply = ping.Send("www.google.com");
                StreamWriter sw = new StreamWriter(@"C:\ping.txt");
                StringBuilder sb = new StringBuilder();
                sb.Append("Address: " + pingreply.Address + "\r\n");
                sb.Append("Roundtrip Time: " + pingreply.RoundtripTime + "\r\n");
                sb.Append("TTL (Time To Live): " + pingreply.Options.Ttl + "\r\n");
                sb.Append("Buffer Size: " + pingreply.Buffer.Length.ToString() + "\r\n");
                sb.Append("Time : " + DateTime.Now + "\r\n");
                sw.Write(sb.ToString());
                sw.Close();
            }
            catch (Exception err)
            {
            }
        }
    }
}

私はこのようなことをしようとしました:

label1.Text = pingreply.Buffer.Length.ToString();

しかし、それはpingを取得するのにうまくいきませんでした。ラベルでそれを取得する方法がわかりません。誰もこれを行う方法を知っていますか?

4

1 に答える 1

11

すべてのエラーをキャッチして無視しています。おそらく、ファイルに書き込もうとしたことが原因です。

これを行うだけです:

label1.Text = new Ping().Send("www.google.com").RoundtripTime.ToString() + "ms";

または、適切に処分します(@Ichabod Clayに感謝します)

using (Ping p = new Ping()) {
    label1.Text = p.Send("www.google.com").RoundtripTime.ToString() + "ms";
}
于 2013-01-31T00:18:27.790 に答える