摘要:
/********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 阅读全文