永发信息网

c# winform连续ping一个IP,就像CMD这个命令ping192.168.1.1 -t,求一个实例代码。

答案:1  悬赏:50  手机版
解决时间 2021-12-02 14:53
  • 提问者网友:饥饿走向夜
  • 2021-12-01 18:41
c# winform连续ping一个IP,就像CMD这个命令ping192.168.1.1 -t,求一个实例代码。
最佳答案
  • 五星知识达人网友:人類模型
  • 2021-12-01 18:50
象下面这样
             Ping ping = null;
            try
            {
                ping = new Ping();

                var pingReply = ping.Send(address);
                if (pingReply == null)
                    return false;

                return pingReply.Status == IPStatus.Success;
            }
            finally
            {
                if (ping != null)
                {

                    // 2.0 下ping 的一个bug,需要显示转型后释放
                    IDisposable disposable = ping;
                    disposable.Dispose();

                    ping.Dispose();
                }
            }追问我是要在winfform程序里实现,点击BTU按钮,然后在TEXTBOX写一个IP。然后listbox里面持续的ping那个ip追答大致象下面这样,稍微改一下就好了

        // 从textbox 中取出地址 
        var address = "192.168.1.1";

        // 可能的话,放到后台线程中去
        while (true)
        {
            var pingReply = Ping(address);
            DisplayPingReplyInfo(pingReply);

            Thread.Sleep(1000);
        }

    private static void DisplayPingReplyInfo(PingReply pingReply)
    {
        // 把这个结果写到listbox中去
        Console.WriteLine("来自 {0} 的回复:字节={1} 时间={2} TTL={3}", pingReply.Address, pingReply.Buffer.Length,
            pingReply.RoundtripTime, pingReply.Options.Ttl);
    }

    private static PingReply Ping(string address)
    {
        Ping ping = null;
        try
        {
            ping = new Ping();

            return ping.Send(address);
        }
        finally
        {
            if (ping != null)
            {
                // 2.0 下ping 的一个bug,需要显示转型后释放
                IDisposable disposable = ping;
                disposable.Dispose();

                ping.Dispose();
            }
        }
    }追问这好像是控制台的,我要的是winform的。显示在winform里面。追答


我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯