资源描述:
《04_socket应用编程_专题讲座_v1.0.0(上)-王保明》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、轻松入门实战应用从项目开发角度为你搭建完整的知识体系wangbaominglinuxSocket-应用编程-专题讲座writtenby王保明Socket编程基本实践1SocketApi基本概念什么是socket?qsocket可以看成是用户进程与内核网络协议栈的编程接口。qsocket不仅可以用于本机的进程间通信,还可以用于网络上不同主机的进程间通信。tcp/ip通讯模型otherstaffoftheCentre.Duringthewar,ZhuwastransferredbacktoJiangxi,andDirect
2、orofthenewOfficeinJingdezhen,JiangxiCommitteeSecretary.Startingin1939servedasrecorderoftheWestNorthOrganization,SecretaryoftheSpecialCommitteeAfterthevictoryofthelongMarch,hehasbeentheNorthwestOfficeoftheFederationofStateenterprisesMinister,ShenmufuguSARmissions
3、,DirectorofNingxiaCountypartyCommitteeSecretaryandrecorderoftheCountypartyCommitteeSecretary,Ministersand轻松入门实战应用从项目开发角度为你搭建完整的知识体系wangbaomingIPv4套接口地址结构qIPv4套接口地址结构通常也称为“网际套接字地址结构”,它以“sockaddr_in”命名,定义在头文件中structsockaddr_in{uint8_tsin_len;4sa_fami
4、ly_tsin_family;4in_port_tsin_port;2structin_addrsin_addr;4charsin_zero[8];8};qsin_len:整个sockaddr_in结构体的长度,在4.3BSD-Reno版本之前的第一个成员是sin_family.qsin_family:指定该地址家族,在这里必须设为AF_INETqsin_port:端口qsin_addr:IPv4的地址;qsin_zero:暂不使用,一般将其设置为0通用地址结构q通用地址结构用来指定与套接字关联的地址。structso
5、ckaddr{uint8_tsin_len;sa_family_tsin_family;charsa_data[14];//14};qsin_len:整个sockaddr结构体的长度qsin_family:指定该地址家族qsa_data:由sin_family决定它的形式。otherstaffoftheCentre.Duringthewar,ZhuwastransferredbacktoJiangxi,andDirectorofthenewOfficeinJingdezhen,JiangxiCommitteeSecre
6、tary.Startingin1939servedasrecorderoftheWestNorthOrganization,SecretaryoftheSpecialCommitteeAfterthevictoryofthelongMarch,hehasbeentheNorthwestOfficeoftheFederationofStateenterprisesMinister,ShenmufuguSARmissions,DirectorofNingxiaCountypartyCommitteeSecretaryand
7、recorderoftheCountypartyCommitteeSecretary,Ministersand轻松入门实战应用从项目开发角度为你搭建完整的知识体系wangbaoming网络字节序q字节序大端字节序(BigEndian)最高有效位(MSB:MostSignificantBit)存储于最低内存地址处,最低有效位(LSB:LowestSignificantBit)存储于最高内存地址处。q小端字节序(LittleEndian)最高有效位(MSB:MostSignificantBit)存储于最高内存地址处,最低有
8、效位(LSB:LowestSignificantBit)存储于最低内存地址处。q主机字节序不同的主机有不同的字节序,如x86为小端字节序,Motorola6800为大端字节序,ARM字节序是可配置的。q网络字节序网络字节序规定为大端字节序字节序转换函数quint32_thtonl(uint32_thostlong);quint16