Asp.net编程技术见解,欢迎进来讨论! 
即日起在时代互联购买虚拟主机可免费获赠域名。享受免费的域名餐,何乐而不为呢? 
一、凡购买时代互联HTML基本型虚拟主机、基本型虚拟主机可获得价值59元的域名优惠券。 
二、凡购买时代互联增强型虚拟主机,即可获赠118元的域名优惠券。  
    PING 是一个用来检测网络连接速度的工具,它会在本机和给出的远程主机名之间建立一个SOCKET 连接并向其发送一个ICMP协议格式的数据包,然后远程主机作出响应,发回一个数据包,通过计算发送到接收数据包的时间间隔,我们可以确定连接的速度。 
     
   此程序可以使用于 asp+asp.net 虚拟主机,时代互联(
www.now.cn)的虚拟主机可以支持 。
    
   使用方法 ping <hostname>  
     
    <hostname> 主机名 
     
     可选属性,决定是否连续的 ping 远程主机。 
     
     下面是代码: 
     
    ///ping.cs 
     
    namespace SaurabhPing 
     
    { 
     
    using System; 
     
    using System.Net; 
     
    using System.Net.Sockets; 
     
    /// <summary> 
     
    /// 主要的类:ping 
     
    /// </summary> 
     
    class Ping 
     
    { 
     
    //声明几个常量 
     
    const int SOCKET_ERROR = -1; 
     
    const int ICMP_ECHO = 8; 
     
    /// <summary> 
     
    /// 这里取得Hostname参数 
     
    /// </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) ; 
     
    } 
     
    else if(argv.Length==2) 
     
    { 
     
    //the user provided the hostname and the switch 
     
    if(argv=="/r") 
     
    { 
     
    //loop the ping program 
     
    while(true) 
     
    { 
     
    //call the method "PingHost" and pass the HostName as a parameter 
     
    PingHost(argv) ; 
     
    } 
     
    } 
     
    else 
     
    { 
     
    //if the user provided some other switch 
     
    PingHost(argv) ; 
     
    } 
     
    } 
     
    else 
     
    { 
     
    //Some error occurred 
     
    Console.WriteLine("Error in Arguments") ; 
     
    } 
     
    } 
     
     
    /// <summary> 
     
    /// 主要的方法,用来取得IP, 
     
    /// 并计算响应时间 
     
    /// </summary> 
     
    public static void PingHost(string host) 
     
    { 
     
    //Declare the IPHostEntry 
     
    IPHostEntry serverHE, fromHE; 
     
    int nBytes = 0; 
     
    int dwStart = 0, dwStop = 0; 
     
    //Initilize a Socket of the Type ICMP 
     
    Socket socket = 
     
    new Socket(AddressFamily.AfINet, SocketType.SockRaw, ProtocolType.ProtICMP); 
     
     // Get the server endpoint 
     
    try 
     
    { 
     
    serverHE = DNS.GetHostByName(host); 
     
    } 
     
    catch(Exception) 
     
    { 
     
    Console.WriteLine("Host not found"); // fail 
     
    return ; 
     
    } 
     
     // Convert the server IP_EndPoint to an EndPoint 
     
    IPEndPoint ipepServer = new IPEndPoint(serverHE.AddressList, 0); 
     
    EndPoint epServer = (ipepServer); 
     
     
    // Set the receiving endpoint to the client machine 
     
    fromHE = DNS.GetHostByName(DNS.GetHostName()); 
     
    IPEndPoint ipEndPointFrom = new IPEndPoint(fromHE.AddressList, 0); 
     
    EndPoint EndPointFrom = (ipEndPointFrom); 
     
     int PacketSize = 0; 
     
    IcmpPacket packet = new IcmpPacket(); 
     
    // Construct the packet to send 
     
    packet.Type = ICMP_ECHO; //8 
     
    packet.SubCode = 0; 
     
    packet.CheckSum = UInt16.Parse("0"); 
     
    packet.Identifier = UInt16.Parse("45"); 
     
    packet.SequenceNumber = UInt16.Parse("0"); 
     
    int PingData = 32; // sizeof(IcmpPacket) - 8; 
     
    packet.Data = new Byte; 
     
    //Initilize the Packet.Data 
     
    for (int i = 0; i < PingData; i++) 
     
    { 
     
    packet.Data
 = (byte)'#'; 
     
    } 
     
    //Variable to hold the total Packet size 
     
    PacketSize = PingData + 8; 
     
    Byte  icmp_pkt_buffer = new Byte; 
     
    Int32 Index = 0; 
     
    //Call a Method Serialize which counts 
     
    //The total number of Bytes in the Packet 
     
    Index = Serialize( 
     
    packet, 
     
    icmp_pkt_buffer, 
     
    PacketSize, 
     
    PingData ); 
     
    //Error in Packet Size 
     
    if( Index == -1 ) 
     
    { 
     
    Console.WriteLine("Error in Making Packet"); 
     
    return ; 
     
    } 
     
    // now get this critter into a UInt16 array 
     
    //Get the Half size of the Packet 
     
    Double double_length = Convert.ToDouble(Index); 
     
    Double dtemp = Math.Ceil( double_length / 2); 
     
    int cksum_buffer_length = Convert.ToInt32(dtemp); 
     
    //Create a Byte Array 
     
    UInt16  cksum_buffer = new UInt16; 
     
    //Code to initialize the Uint16 array 
     
    int icmp_header_buffer_index = 0; 
     
    for( int i = 0; i < cksum_buffer_length; i++ ) { 
     
    cksum_buffer = 
     
    BitConverter.ToUInt16(icmp_pkt_buffer,icmp_header_buffer_index); 
     
    icmp_header 
     
    以上代码可以直接在时代互联的ASP+ASP.NET 虚拟主机上直接运行,欢迎试用 !到www.now.net.cn/host 订购后可试用 ! 
     
     关于ASP+ASP.NET高速虚拟主机,也有同时支持JSP(JAVA) 和PHP的综合虚拟主机。也可以试用,其他问题可以有免费网络电话咨询, 
http://www.now.cn
空间介绍: http://www.now.cn/vhost/ 
 
   ★静态HTML网页 ,入门学习型虚拟主,50M独立网页空间,100元/年
     
     基本型A 500元/年 150M的网站空间, 支持JSP 
     
     增强型A 1100元/年 250M的网站空间+JSP+MYSQL数据库  
时代互联(www.now.cn) 的虚拟主机,免费配有 CDN 镜象网络加速 ,送域名 邮箱,流量访问系统,留言版,计数器! 
    
    优惠套餐:http://www.now.cn/special/host.net   
    
    虚拟主机在线订购试用,请到: http://www.now.cn/vhost   QQ 联系 :168082090 
     
如有问题要咨询,时代互联提供免费咨询电话,点击这里: http://www.now.cn/customer/moreline.net