摘要: 大端字节序和小端字节序:将低序字节存储在起始地址(即低地址),这称为小端字节序,将高序字节存储在起始地址,这称为大端字节序。由于网络协议必须指定一个网络字节序,作为网络编程人员,必须清楚各种字节序间的区别。例如,在一个TCP分节中,有一个16位的端口号和一个32位的IPv4地址,发送协议栈和接收协议栈必须对此多字节字段的传送字节序进行协调,以达成一致。网际协议在处理这些多字节整数时,使用大端字节序。从理论上说,具体实现可以把多字节整数按主机字节序存储在套接口地址结构中,当需要写到协议头部或从协议头部取出时,再转换到字节序格式或转换回来,这样可以避免我们牵涉细节。但是,由于历史上的原因和POSI 阅读全文
posted @ 2011-12-26 22:05 ChangeIt 阅读(415) 评论(0) 推荐(0)
摘要: 我们已经知道,当把套接口地址结构传递给套接口函数时,总是通过指针来传递的,即传递的是一个指向结构的指针。结构的长度也作为参数来传递,其传递方式取决于结构的传递方向:从进程到内核,还是从内核到进程。1、从进程到内核传递套接口地址结构有3个函数:bind、connect和sendto,这3个函数的一个参数是指向套接口地址结构的指针,另一个是结构的整数大小,例如:struct sockaddr_in serv;/* fill in serv{} */connect( sockfd, (SA*)&serv, sizeof(serv) );由于指针和指针所指结构的大小都传递给内核,所以从进程到内 阅读全文
posted @ 2011-12-26 16:52 ChangeIt 阅读(1264) 评论(0) 推荐(0)