2015年3月9日

用宏实现HEX到ASCII ,ASCII 到HEX

摘要: #define HEX2ASCII(value, data)do{\ value = (value > 0x09)?(value+0x7):value; \ *data = value + 0x30; \ }while(0)#define ASCII2HEX(value, data)do{\ val... 阅读全文

posted @ 2015-03-09 20:00 程良 阅读(734) 评论(0) 推荐(0) 编辑

2014年11月9日

柔性数组--变长数组

摘要: int init_Department(manager *pt){ assert( NULL != pt && pt->p != NULL) ; pt->p->Manager = 10; pt->p->PM =100; pt->p->ProgrammerNo[... 阅读全文

posted @ 2014-11-09 22:51 程良 阅读(173) 评论(0) 推荐(0) 编辑

2014年10月30日

字符分割函数

摘要: char *strsep(char **stringp, const char *delim){ char *s; const char *spanp; int c, sc; char *tok; if ((s = *stringp)== NULL) re... 阅读全文

posted @ 2014-10-30 08:50 程良 阅读(209) 评论(0) 推荐(0) 编辑

2014年6月11日

C语言之----面向对象的方法实现链表的操作

摘要: 1 /* 2 * 详细运行过程: 本程序实现的是对链表的简单的操作,即链表的增 删 改 查 销毁 初始化 3 * 运用面向对象的思想,实现一个类op,op中包括了所有的链表操作方法 4 * 其他的程序调用op类,实现对表链表的操作 5 * 链表包括 6 * 面向对象,简单易学程序更加紧... 阅读全文

posted @ 2014-06-11 12:37 程良 阅读(965) 评论(0) 推荐(0) 编辑

2014年3月24日

udphdr结构

摘要: udphdr结构包含在/usr/src/linux/include/linux/udp.h1 struct udphdr {2 __u16 source;3 __u16 dest;4 __u16 len;5 __u16 check;6 }; |----------------|----------------|------------- | source | dest | |----------------|----------------| | len|check| |--------------------------... 阅读全文

posted @ 2014-03-24 14:55 程良 阅读(1950) 评论(0) 推荐(0) 编辑

2014年3月22日

常见递归&非递归实现

摘要: void my_strcpy(char *to,const char *from){ if('\0' == *from){ *to = '\0'; return ; } *to++ = *from++; my_strcpy(to,from);}//只拷贝n个字符void my_strncpy(char *to,const char* from,int n){ if( 0 == n || '\0' == *from){ *to = '\0'; return ; } *to++ = *from++; ... 阅读全文

posted @ 2014-03-22 21:48 程良 阅读(463) 评论(0) 推荐(0) 编辑

tcphdr结构

摘要: 包含在/usr/src/linux/include/linux/tcp.h 1 struct tcphdr { 2 __be16 source; 3 __be16 dest; 4 __be32 seq; 5 __be32 ack_seq; 6 #if defined(__LITTLE_ENDIAN_BITFIELD) 7 __u16 res1:4, 8 doff:4, 9 fin:1,10 syn:1,11 rst:1,12 psh... 阅读全文

posted @ 2014-03-22 20:40 程良 阅读(5296) 评论(0) 推荐(0) 编辑

2014年3月21日

iphdr结构

摘要: 包含在/usr/src/linux/include/linux/ip.h 1 struct iphdr { 2 #if defined(__LITTLE_ENDIAN_BITFIELD) 3 __u8 ihl:4, 4 version:4; 5 #elif defined (__BIG_ENDIAN_BITFIELD) 6 __u8 version:4, 7 ihl:4; 8 #else 9 #error "Please fix "10 #endif11 __u8 tos;12 __be16 ... 阅读全文

posted @ 2014-03-21 16:58 程良 阅读(1078) 评论(0) 推荐(0) 编辑

2014年3月20日

IP选路

摘要: 选路是IP最重要的功能之一。图1是IP层处理过程的简单流程。需要进行选路的数据报可以由本地主机产生,也可以由其他主机产生。在后一种情况下,主机必须配置成一个路由器,否则通过网络接口接收到的数据报,如果目的地址不是本机就要被丢弃。图1:IP层工作流程图1中的路由表经常被IP访问(在一个繁忙的主机上,一秒钟内可能要访问几百次),但是它被路由守护程序等更新的频度却要低得多(可能大约30秒一次)。选路的原理IP搜索路由表的几个步骤: 1)搜索匹配的主机地址; 2)搜索匹配的网络地址; 3)搜索默认表项(默认表项一般在路由表中被指定为一个网络表项,其网络号为0)。匹配主机地址步骤始终发生在匹配网... 阅读全文

posted @ 2014-03-20 19:35 程良 阅读(686) 评论(0) 推荐(0) 编辑

ping命令

摘要: Ping命令是对两个TCP/IP系统连通性进行测试的基本工具,目的是为了测试目标主机是否可达。它利用ICMP回显请求(8,0)和回显应答(0,0)报文,而不用经过传输层(TCP/UDP)。Ping服务器一般在内核中实现ICMP的功能,Ping只有在安装了TCP/IP协议以后才可以使用。Ping命令结构我们称发送回显请求的Ping程序为客户,被Ping的主机为服务器。ICMP回显请求和回显应答报文:Ping命令的类型值为8或0,代码值为0。标识符:Unix系统在实现Ping程序时把ICMP报文中的标识符字段设置成发送进程的ID号。这样可以区分多个Ping实例。序列号:从0开始,每发送一次新的回显 阅读全文

posted @ 2014-03-20 19:14 程良 阅读(1514) 评论(0) 推荐(0) 编辑

导航