none
請問想用C#寫一個類似DOS下 ping -t效果的程式 RRS feed

解答

  • using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net.NetworkInformation;
    using System.Text;
    using System.Threading;
    
    namespace ConsoleApplication5
    {
     class Program
     {
      static void Main(string[] args)
      {
       ThreadStart ts = new ThreadStart(PingItForver);
    
       Thread t = new Thread(ts);
       t.Start();
       Console.WriteLine("Press any key to stop it");
       Console.ReadLine();
       t.Abort();
      }
    
      public static void PingItForver()
      {
       while (true)
       {
        PingIt();
        Thread.Sleep(1000);
       }
      }
    
      public static void PingIt()
      {
       string message;      
       Ping p = new Ping();
       var ip = "168.95.1.1";
       PingReply r = p.Send(ip);
       if (r.Status == IPStatus.Success)
        message = string.Format("IP:{0} pint test ok!", ip);
       else
        message = string.Format("IP:{0} pint test failed!", ip);
       Console.WriteLine(message);
      }
     }
    }
    
    

    2011年8月12日 上午 07:25

所有回覆

  • 使用 Ping ,再加上 Threading 就可以達到了吧。

     

    2011年8月12日 上午 06:42
  • 不好意思~小弟是C#新手,有沒有範例可以參考呢~~感恩~~
    2011年8月12日 上午 06:48
  • 不好意思~小弟是C#新手,有沒有範例可以參考呢~~感恩~~


    回復者貼的MSDN連結都有範例程式碼


    Shadowと愉快なコード達

    2011年8月12日 上午 07:03
  • using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net.NetworkInformation;
    using System.Text;
    using System.Threading;
    
    namespace ConsoleApplication5
    {
     class Program
     {
      static void Main(string[] args)
      {
       ThreadStart ts = new ThreadStart(PingItForver);
    
       Thread t = new Thread(ts);
       t.Start();
       Console.WriteLine("Press any key to stop it");
       Console.ReadLine();
       t.Abort();
      }
    
      public static void PingItForver()
      {
       while (true)
       {
        PingIt();
        Thread.Sleep(1000);
       }
      }
    
      public static void PingIt()
      {
       string message;      
       Ping p = new Ping();
       var ip = "168.95.1.1";
       PingReply r = p.Send(ip);
       if (r.Status == IPStatus.Success)
        message = string.Format("IP:{0} pint test ok!", ip);
       else
        message = string.Format("IP:{0} pint test failed!", ip);
       Console.WriteLine(message);
      }
     }
    }
    
    

    2011年8月12日 上午 07:25
  • 非常感謝您~替小弟解惑~~
    2011年8月12日 上午 08:32
  • 我剛試了一下IP部分如果是讀一份IP清單的CSV檔就只會一直PING檔案的第一筆資料,其他的好像就不會PING了,如果要能一次PING多筆剛如何做呢?

    2011年8月13日 上午 02:15
  • 請展現你如何處理 csv 檔,及如何 ping 來確認你的確換到下一筆。

    依序 ping 在單緒跑回圈,一次 ping 在迴圈裡面呼叫執行緒跑,多緒屬於射後不理,你要自己搞定各執行緒如何確定執行完成、資料寫入共用區等。


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2011年8月14日 下午 05:02