1.用字符串指针做为发送缓冲区和接收缓冲区的指针;

2.icmp报文类型结构体可自行定义,也可用<netinet/ip_icmp.h>中定义好的strcut icmp结构体;

3.ip_hl*4表示ip头部长度;

4.剥离头部的含义:让数据部分的指针指向数据部分,找到数据部分所在的内存地址;

5.原始套接字的接收:对于某个协议的原始套接字,若不进行其他额外的操作,则此原始套接字会接收所有发向本机的数据部分为其协议类型的IP数据包,若调用connect(),则此套接字只接收与其连接的那个IP发来的IP数据报。

6.原始套接字面向IP层,因此对于原始套接字来说没有端口这个概念,对于某个进程创建的原始套接字,无法保证其收到的数据是发向其所在的进程的,需要根据收到的报文包的某个字段与进程id相比较来判断此报文是否是发向其所在进程的;

7.注意sin_addr是个结构体类型,不能将ip值以sockaddr_in.sin_addr=ip形式进行赋值,正确赋值方式:sockaddr_in.sin_addr.s_addr=ip;

8.只有root身份才能创建原始套接字;

9.调用库函数之后,要根据其返回值判断函数是否调用成功,若失败则输出错误信息并退出程序;

10.char *p="icmp";sizeof(p)表示指针类型的长度而非“icmp“的字节数;

11.vim下,每个输出后都要加一个\n;

icmp_ping学习笔记的更多相关文章

  1. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  2. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  3. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  4. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

  5. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

  6. seaJs学习笔记2 – seaJs组建库的使用

    原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...

  7. CSS学习笔记

    CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...

  8. HTML学习笔记

    HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...

  9. DirectX Graphics Infrastructure(DXGI):最佳范例 学习笔记

    今天要学习的这篇文章写的算是比较早的了,大概在DX11时代就写好了,当时龙书11版看得很潦草,并没有注意这篇文章,现在看12,觉得是跳不过去的一篇文章,地址如下: https://msdn.micro ...

随机推荐

  1. ittun配置和使用教程

    有好久没写博了.时间过得真快,一下子一年又过去了. 不墨迹这么多了. 作为一个前端,页面写好了少不了做测试以及给其他同事看看效果,然而公司没有测试服务器,真是悲催哦. 一直都是用ip地址看页面的.但是 ...

  2. iOS程序 防止动态调试和代码注入

    http://ruixiazun.blog.163.com/blog/static/9068791820141173588694/ iPhone真实的运行环境是没有sys/ptrace.h抛出.ptr ...

  3. CentOS 5系统安装Django、Apache 、mod_wsgi部署Python环境教程

    Django,是一款针对Python环境的WEB开发框架,能够帮助我们构架快捷.简单的WEB框架设置,Django框架非常适合开发内容应用环境,所以在本文中,麦子将整理基于Centos系统部署安装Dj ...

  4. linux内核学习之七 可执行程序的装载和运行

    一 程序的装载和运行的基本知识补充    1 当进程开始执行一个新的程序时,从父进程继承的所有页被释放,以便在新的用户地址空间开始执行新的计算,甚至进程的特权都可能发生改变,但是,进程的PID不会改变 ...

  5. string的实现

    面试常常用到string类的实现,自己总结了一下: #pragma once #include <iostream> #include <cassert> #include & ...

  6. hihoCoder#1014

    刚开始学习C语言,准备在做hiho的题目的过程中来学习,在此进行记录,如果代码中有错误或者不当的地方还请指正. 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小 ...

  7. hibernate3 所需的jar包

  8. 八皇后java算法

    import java.util.Date; public class EightQueen { public static void main(String[] args) {  long star ...

  9. x.2

    某些原因,和女朋友分手了,难过 订的M18XR3居然提前了半个多月到货,开心 想想一个人的孤单,还是有点难过 转眼间人生已经过去小半,剩下的除去苟延残喘20年,也就不到20年时间蹦跶.都说人生如戏,既 ...

  10. php 目录函数和日期函数

    continue . break . exit目录函数opendir(); 打开一个文件夹is_file 只判断文件是否存在: file_exists 判断文件是否存在或者是目录是否存在: is_di ...