日期:2009-04-20  浏览次数:20499 次

namespace SaurabhPing
{
  using System;
  using System.Net;

  using System.Net.Sockets;
  /// <summary>
  ///        The Main Ping Class
  /// </summary>
  class Ping
  {
    //Declare some Constant Variables
    const int SOCKET_ERROR = -1;        
    const int ICMP_ECHO = 8;
    /// <summary>
    ///        The Starting Point of the Class
    ///        It Takes the Hostname parameter
    /// </summary>
    public static void Main(string[] argv)
    {
      if(argv.Length==0)
      {
    //If user did not enter any Parameter inform him
    Console.WriteLine("Usage:Ping <hostname> /r") ;
    Console.WriteLine("<hostname> The name of the Host who you want to ping");
    Console.WriteLine("/r Ping the host continuously") ;
      }
      else if(argv.Length==1)
      {
    //Just the hostname provided by the user
    //call the method "PingHost" and pass the HostName as a parameter
    PingHost(argv[0]) ;
      }
      else if(argv.Length==2)
      {
    //the user provided the hostname and the switch
    if(argv[1]=="/r")
    {
      //loop the ping program
      while(true)
      {
        //call the method "PingHost" and pass the HostName as a parameter
        PingHost(argv[0]) ;
      }
        }
    else
    {
      //if the user provided some other switch
      PingHost(argv[0]) ;
     }
       }
       else
       {
     //Some error occurred
     Console.WriteLine("Error in Arguments") ;
        }
     }
        
      /// <summary>
      ///        This method takes the "hostname" of the server
      ///        and then it ping's it and shows the response time
      /// </summary>