摘要:简介:封装入门目的:把最基本的数据包被路由器解封装、转发、再封装的过程用动画显示出来。拓扑:两个主机经一个路由器相连。步骤:1)H1 ping H2, 得先封装三个报头(link network,protocol) 后才发送。 2) 路由器收到后,把ping解封装、转发、再封装,送往 H2. 3)H2收到ping时,把它解封装, 知道这个ping是针对自己的,就回复echo,把 echo封装好才发送。 4)R1收到echo后,将其转发给H1。H1把echo解封装,知道这个echo是回复自己的,ping成功了 。初始化:ARP表的MAC地址齐全这个案例假设H1, H2已经知道彼此的地址。【注】这
阅读全文
摘要:有时候我们只知道一个函数的大概形式,不记得确切的表达式,或者是不记得着函数在那个头文件进行了说明.这个时候我们可以求助系统. 比如说我们想知道fread 这个函数的确切形式,我们只要执行 man fread 系统就会输出着函数的详细解释的.和这个函数所在的头文件<stdio.h>;说明了. 如果我们要write 这个函数的说明,当我们执行man write 时,输出的结果却不是我们所需要的. 因为我们要的是write 这个函数的说明,可是出来的却是write 这个命令的说明.为了得到write 的函数说明我们要用 man 2 write. 2 表示我们用的write 这个函数是系统
阅读全文
摘要:试着编译下面这个程序/* temp.c */#include <math.h>;int main(int argc,char **argv){double value;printf("Value:%f\n",value);}这个程序相当简单,但是当我们用 gcc -o temp temp.c 编译时会出现下面所示的错误./tmp/cc33Kydu.o: In function `main':/tmp/cc33Kydu.o(.text+0xe): undefined reference to `log'collect2: ld returned 1
阅读全文
摘要:Makefile的一般格式如下: target: componentsTAB rule第一行表示的是依赖关系.第二行是规则.一个通用的Makefile例子,本人觉得还可以,所以就推荐一下ob = file1#ob为一变量,以后如果要改变源程序文件名称,只替换file1即可${ob}:${ob}.c#${ob}即使用上面定义的变量,这里的${ob}将替换为file,下同gcc -o ${ob} ${ob}.c#如果需要调试信息等等,改变这行即可vi:#定义一操作,以后使用make vi,即可达到vi file1.c的目的 vi ${ob}.c#注:这一行行首一定要使用跳一下,要不make就耍赖皮
阅读全文
摘要:(hello.c):int main(int argc,char **argv){printf("Hello Linux\n");}gcc –o hello hello.c参数-o表示输出可执行文件,例如 hello参数-c 表示生成目标代码,例如 hello.o参数-g 表示提供对程序进行调试
阅读全文