2012年9月20日

原始套接字

摘要: 基于原始套接字编程 在开发面向连接的TCP和面向无连接的UDP程序时,我们所关心的核心问题在于数据收发层面,数据的传输特性由TCP或UDP来保证: 也就是说,对于TCP或UDP的程序开发,焦点在Data字段,我们没法直接对TCP或UDP头部字段进行赤裸裸的修改,当然还有IP头。换句话说,我们对它们头部操作的空间非常受限,只能使用它们已经开放给我们的诸如源、目的IP,源、目的端口等等。 今天我们讨论一下原始套接字的程序开发,用它作为入门协议栈的进阶跳板太合适不过了。OK闲话不多说,进入正题。 原始套接字的创建方法也不难:socket(AF_INET,SOCK_RAW,protoc... 阅读全文

posted @ 2012-09-20 21:27 追寻前人的脚步 阅读(917) 评论(1) 推荐(0) 编辑

两个数据结构ip和tcphdr

摘要: tcp报文有tcp报文的首部ip报文有ip报文的首部两者的关系是tcp首部+tcp报文段的数据部分构成了ip数据报的数据部分,如果再加上ip数据报的首部就够成了ipstruct--ip_optionsstruct ip_options表示IP选项struct ip_options { __be32 faddr; unsigned char optlen; unsigned char srr; unsigned char rr; unsigned char ts; unsigned char is_data:1, is_strictroute:1, srr_is_hit:1, is_change 阅读全文

posted @ 2012-09-20 17:44 追寻前人的脚步 阅读(1171) 评论(0) 推荐(0) 编辑

2012年9月19日

c语言socket编程

摘要: socket目 录socket 1.socket() 2.bind() 3.connect() 4.listen() 5.accept() 6.send() 和recv() 7.sendto() 和recvfrom() 8.close() 和shutdown() 9.getpeername() 10.gethostname()socketsocket()我们使用系统调用socket()来获得文件描述符:#include#includeint socket(int domain,int type,int protocol);第一个参数domain设置为“AF_INET”。第二个参数是套接口的类型 阅读全文

posted @ 2012-09-19 23:04 追寻前人的脚步 阅读(1347) 评论(0) 推荐(0) 编辑

pthead_create的使用,英语不会是硬伤

摘要: 英语不会果然是硬伤啊,英文的看了半天,就是一点都看不懂啊,下面来用中文解释下这个函数把,汗Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1 #include<stdio.h> #include<pthread.h> void *print_thread_id(void *arg) { /* 打印当前线程的线程号*/ printf("Current thread id is %u\n", (uns 阅读全文

posted @ 2012-09-19 20:29 追寻前人的脚步 阅读(496) 评论(0) 推荐(0) 编辑

inet_aton和inet_network和inet_addr三者比较

摘要: 知识背景:210.25.132.181属于IP地址的ASCII表示法,也就是字符串形式。英语叫做IPv4 numbers-and-dots notation。如果把210.25.132.181转换为整数形式,是3524887733,这个就是整数形式的IP地址。英语叫做binary data。(其实binary是二进制的意思)问题所在:如何在字符串形式的IP和整数形式的IP之间转换呢?问题解决思路:有三个函数可以解决这个问题,当然不止这三个函数,只是这三个函数最常用且最易混淆。隆重推出他们:inet_network(), inet_addr(), inet_aton()!!三者定义:int in 阅读全文

posted @ 2012-09-19 18:08 追寻前人的脚步 阅读(337) 评论(0) 推荐(0) 编辑

2012年9月4日

ubuntu的系统日志配置文件的位置

摘要: /etc/rsyslog.d/50-default.conf找了好多次了 阅读全文

posted @ 2012-09-04 20:08 追寻前人的脚步 阅读(632) 评论(0) 推荐(0) 编辑

2012年9月3日

vim复制粘贴解密(转)

摘要: Vim作为最好用的文本编辑器之一,使用vim来编文档,写代码实在是很惬意的事情。每当学会了vim的一个新功能,就会很大地提高工作效率。有人使用vim几十年,还没有完全掌握vim的功能,这也说明了vim的强大。而这样何尝不是一件好事呢,只要有的学习,就有的提高。 最近使用Vim来写博客,发现在Vim中粘贴Python代码后,缩进就全乱了。仔细研究了以下,原来是自动缩进的缘故,于是做如下设置::set noai nosi取消了自动缩进和智能缩进,这样粘贴就不会错行了。但在有的vim中不行,还是排版错乱。 后来发现了更好用的设置::set paste进入paste模式以后,可以在插入模式下粘贴内容, 阅读全文

posted @ 2012-09-03 23:03 追寻前人的脚步 阅读(298) 评论(0) 推荐(0) 编辑

用man来查找c函数库

摘要: 今天又学习了当写程序要查找函数的时候可以用到强大的man使用man时可以指定不同的section来浏览,各个section意义如下:1 - commands2 - system calls3 - library calls4 - special files5 - file formats and convertions6 - games for linux7 - macro packages and conventions8 - system management commands记不住,每次都是1、2、3、4这样试的,总能找到自己想要的 阅读全文

posted @ 2012-09-03 08:48 追寻前人的脚步 阅读(357) 评论(0) 推荐(0) 编辑

2012年8月31日

复制文件

摘要: 1 复制单个文件cp 源 目2 复制一个目录cp -rf 源 目3 复制一个目录下的所有文件cp -rf 源/* 目 阅读全文

posted @ 2012-08-31 23:08 追寻前人的脚步 阅读(172) 评论(0) 推荐(0) 编辑

2012年8月29日

vim的自动补齐功能

摘要: 转自:http://bluegene8210.is-programmer.com/posts/27873.htmlVim 的补全模式加速器,轻松玩转全部 15 种自动补全模式Jacky Liuposted @ 2011年7月06日 06:12 inVimwith tagsvimcompletion补全自动补全自动完成, 1739 阅读---- 这是两年前写的一个小工具,是为了学习掌握 Vim 的补全模式,也是为了用起来方便。在那之前,我对 Vim 的补全功能还只是稍微了解,从没用过,因为补全功能默认的按键都是 emacs 式的,太蛋疼了,觉得这样还不如直接手敲。但是后来开始越来越多地写代码(我 阅读全文

posted @ 2012-08-29 22:38 追寻前人的脚步 阅读(3498) 评论(0) 推荐(0) 编辑

导航