登录
首页 » C#源码 » C# 模拟Windows CMD Ping命令

C# 模拟Windows CMD Ping命令

于 2023-05-08 发布 文件大小:21.34 kB
0 122
下载积分: 2 下载次数: 1

代码说明:

C# 模拟Windows CMD Ping命令,这个Ping和Windows中的控制台Ping命令几乎一样,如果用户没有输入任何参数则给出提示,初始化一个ICMP类型的Socket,用户提供了主机名和循环参数(开关,“/r”),调用 PingHost 方法并将主机名作为参数传递给它,如果用户还提供了其他的参数则忽略,取得报文内容,转化为字节数组,然后计算报文的长度。   在校验和算法方面,把ICMP报头二进制数据以2字节为单位累加起来,若ICMP报头为奇数个字节,会剩下最后一字节。把最后一个字节视为一个2字节数据的高字节,这个2字节数据的低字节为0,继续累加。。

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • C# 文件上载/下载器程序示例
    一个挺基础的Visual C# 文件上载/下载器程序源码示例,从指定网址下载文件到本机。下载文件使用client.DownloadFile(),上传文件使用client.UploadFile(),使用指定的方法将指定的本地文件上载到指定的资源。程序要用到一个三方控件:File Downloader and Uploader.dll,请放于Debug目录下,与exe同级,运行时供调用。
    2022-02-28 16:20:26下载
    积分:1
  • C#生成连续和任意重复的字符串实例
    C#调用自定义方法生成字符串实例,生成的这些字符串有两种类型,一种是生成包括N个连续字符的字符串,另一个是生成指定重复字符的字符串,在平时的应用中,有很多卡号和序列号需要生成类似的号码,有兴趣的可参考。   static void Main(string[] args)   {    Program p = new Program();//创建Program对象    p.CreateSString();//调用自定义方法    p.CreateTString();//调用自定义方法    Console.Read();   }   private void CreateSString()   {    //生成包含6个连续字符的字符串    string str = new string(Enumerable.Range(0, 6).Select(i => (char)(i + 65)).ToArray());    Console.WriteLine("包含6个连续字符的字符串:" + str);   }   private void CreateTString()   {    //生成包含3个重复字符串的字符串    string str = string.Join(string.Empty, Enumerable.Repeat("MR", 3).ToArray());    Console.WriteLine("包含3个重复字符串的字符串:" + str);   }
    2022-07-11 13:58:31下载
    积分:1
  • C# 日志事件操作相关函数集
    C# 日志事件操作相关函数集,完成的功能有:从Windows窗体播放资源中嵌入的声音、判断程序文件是否为.NET程序集、查询日志文件中指定类型事件、将日志事件信息导出到外部文件中、获取日志事件的静态和配置信息等功能。
    2022-02-15 05:43:25下载
    积分:1
  • C# 轨迹动画 使动画对象沿着贝塞尔曲线平滑移动
    C# 轨迹动画 使动画对象沿着贝塞尔曲线平滑移动,很明显的你会看到,小球是沿着给定的路径运动的,一会向上,一会向下运动,很明显的转变动画,在本例中,这个轨迹是贝塞尔曲线.
    2022-09-18 20:15:03下载
    积分:1
  • C#获取时区并把北京时间转换为目标时区时间
    C# 获取计算机上存在的时区信息,并把北京时间转换为目标时区时间。
    2022-03-26 01:29:39下载
    积分:1
  • C# 创建有参、无参数等多线程操作实例
    C# 多线程操作实例,获取指定进程的进程详细信息、获取指定进程的模块详细信息、创建无参数的多线程应用程序、创建带参数的多线程应用程序、创建共享线程模拟资源共享、创建子线程更新主线程数据等,部分代码分享如下:   if (MyThread.ThreadState == ThreadState.Terminated)    MyData += " 当前状态:已完成执行并已退出";   if (MyThread.ThreadState == ThreadState.Transition)    MyData += " 当前状态:在可以执行前等待处理器之外的资源";   if (MyThread.ThreadState == ThreadState.Unknown)    MyData += " 当前状态:状态未知";   if (MyThread.ThreadState == ThreadState.Wait)    MyData += " 当前状态:正在等待外围操作完成或等待资源释放";   if (MyThread.WaitReason == ThreadWaitReason.EventPairHigh)    MyData += " 等待原因:线程正在等待事件对高";   if (MyThread.WaitReason == ThreadWaitReason.EventPairLow)    MyData += " 等待原因:线程正在等待事件对低";   if (MyThread.WaitReason == ThreadWaitReason.ExecutionDelay)    MyData += " 等待原因:线程执行延迟";   if (MyThread.WaitReason == ThreadWaitReason.Executive)    MyData += " 等待原因:线程正在等待计划程序";   if (MyThread.WaitReason == ThreadWaitReason.FreePage)    MyData += " 等待原因:线程正在等待可用的虚拟内存页";   if (MyThread.WaitReason == ThreadWaitReason.LpcReceive)   
    2022-04-18 07:37:09下载
    积分:1
  • Visual C# 自动识别Access数据库路径
    Visual C# 自动识别Access 2000数据库路径,当然不仅限于Access2000,Access2007版本也可以,此源码仅是示例,当然打开程序后,程序会自动搜索Access路径,连接之后自动打开程序。大致的实现方法,可参考下述代码:   string strPath = Application.StartupPath + " est.mdb";//得到数据库路径   string ConStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data source=" + strPath;//创建连接字符串   OleDbDataAdapter OleDatOleDat = new OleDbDataAdapter(//创建数据适配器对象    "select * from 帐目", ConStr);   OleDatOleDat.Fill(dt);//填充数据表   count = dt.Rows.Count;   textBox1.Text = dt.Rows[0][0].ToString();//显示数据表中数据   textBox2.Text = dt.Rows[0][1].ToString();//显示数据表中数据   textBox3.Text = dt.Rows[0][2].ToString();//显示数据表中数据   textBox4.Text = dt.Rows[0][3].ToString();//显示数据表中数据
    2022-03-24 00:39:43下载
    积分:1
  • C# 发送邮件简单版 附代
    C# 发送邮件简单版 附代码,将string型转换为Base64,发送消息至服务器,本程序成功发送邮件,需要设置smtp服务器、指定发送端口、指定发件人、收件人、邮件主题、内容、发件人密码等信息。
    2022-07-17 21:27:55下载
    积分:1
  • C# 在程序中使用指针、十字光标、浮动窗口等不安全代
    C# 在程序中使用指针、十字光标、浮动窗口等不安全代码的实例,单击以下按钮会演示出对应功能:   在程序中显示一个浮动帮助窗口   显示等待光标   显示十字光标   对于功能实现,逐一分享源代码如下:在程序中使用指针等不安全代码:   var MyFileName = "C:atlog.txt";   var MyReader = new MyReaderClass(MyFileName);   const int MyBuffSize = 128;   byte[] MyBuffer = new byte[MyBuffSize];   ASCIIEncoding MyEncoder = new ASCIIEncoding();   var MyInfo = MyFileName + "的内容如下:";   while (MyReader.Read(MyBuffer, 0, MyBuffSize) != 0)    MyInfo += " " + MyEncoder.GetString(MyBuffer);   MessageBox.Show(MyInfo, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);   private void button2_Click(object sender, EventArgs e)   {//在程序中显示一个浮动帮助窗口    Help.ShowPopup(this, "提高程序开发效率、拓展软件应用领域", new Point(300, 350));   }   private void button3_Click(object sender, EventArgs e)   {//显示等待光标    this.Cursor = Cursors.WaitCursor;   }   private void button4_Click(object sender, EventArgs e)   {//显示十字光标    this.Cursor = Cursors.Cross;   }
    2023-05-20 08:40:02下载
    积分:1
  • C# 使用断开式连接批量更新数据库中数据
    C# 使用断开式连接批量更新数据库中数据,你可以在在DataGridView控件中更新数据后,点击提交更改按钮更新数据。   P_cmd.Parameters.Add("@id", SqlDbType.Int,10,"id");//设置参数   P_cmd.Parameters.Add("@name", SqlDbType.VarChar, 10, "学生姓名");//设置参数   P_cmd.Parameters.Add("@age", SqlDbType.Int, 10, "学生年龄");//设置参数   P_cmd.Parameters.Add("@sex", SqlDbType.NChar, 2, "性别");//设置参数   P_cmd.Parameters.Add("address", SqlDbType.VarChar, 50, "家庭住址");//设置参数   P_SqlDataAdapter.UpdateCommand = P_cmd;//设置UpdateCommand属性   P_SqlDataAdapter.Update(G_st.Tables[0]);//更新数据库中数据   G_st.AcceptChanges();//提交修改   MessageBox.Show("更改成功!","提示!");//弹出消息对话框   GetMessage();//填充表   dgv_Message.DataSource = G_st.Tables[0];//设置数据源   dgv_Message.Columns[0].Visible = false;//隐藏主键列
    2022-07-24 10:02:56下载
    积分:1
  • 696516资源总数
  • 106658会员总数
  • 16今日下载