10 2013 档案
摘要:/********ntohl与htonl其实是一样的没有区别*********************/#include #include int main(){ char ip[] = "192.168.1.110"; int r1, r2, r3; r1 = inet_addr(ip); r2 = ntohl(r1); r3 = ntohl(r2); printf("a to n 0x%x\n", r1); printf("n to h 0x%x\n", r2); printf("n to h 0x%x\n",
阅读全文
摘要:UDP传输模式是数据报,TCP传输模式为字节流,字节流与数据报区别在于有边界与无边界。例如:TCP客户端发送了三个数据包,开的缓存足够大服务端一次可接收三个数据包的数据,这就是无边界。UDP客户端发送了三个数据包,就算开的缓存足够大服务端一次也只能接收一个数据包,这就是有边界。还有就是协议会维护源地址和目的地址直到协议要求断开连接,这就决定了TCP不能进行广播和多播。如何使用TCP发送结构体类型数据:·//使用结构体转换成字符串发送,在服务器端直接转为结构体·/*·charsend_buf[1024]="tony2000";·mems
阅读全文
摘要:/*************************************大端与小端:与大端存储格式相反,在小端存储格式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节**************************************//*联合体union的存放顺序是所有成员都从低地址开始存放。*/请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1解答:int checkCPU( ){ { union w { int a; char b; } c; c.a = 1; return(c.b ==1); }} /**.
阅读全文
摘要:32位CPU则往四个字节凑。所以创建结构体等类型时要注意内存对齐的原则书写,以免编译器申请不必要的内存。typedef struct udp_data{ double d; 8 char a; 4 double b; 8} UDP_PACKET;typedef struct udp_data{ char d; 1 char a; 3 double b; 8} UDP_PACKET;typedef struct udp_data{ char d; 1 char a; 3 int b; 4} UDP_PACKET;typedef struct udp_data { double d; 8 char
阅读全文
摘要:1.#include void Function(){ printf("Call Function!\n");}int main(){ void (*p)(); printf("p=%p &p=%p\n", p,&p); //p是一级指针,&p是二级指针// printf("(int *)&p=%p (int **)\n", (int *)&p);// *(int *)&p = (int)Function;// (*p)(); return 0;}打印结果:p=0x8048499 &am
阅读全文
摘要:1 #include "myhead.h" 2 #include "sem.h" 3 #include "socket.h" 4 #include "read_write.h" 5 #include "myhash.h" 6 7 #define ERROR_EXIT(m) (perror(m), exit(-1)) 8 9 int listenfd, localfd; 10 int connsockpair[2]; 11 int semid; 12 int ...
阅读全文

浙公网安备 33010602011771号