- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
八、网络编程剖析
通用地址格式 sa_family:协议族,采用“AF_xxx”形式,如AF_INET(IP协议族) sa_data:1包含了一些远程电脑的地址、端口和套接字的数目,它里面的数据是夹杂在一起的 地址结构 这个两个数据类型是等效的,可以相互转换,通常使用sockaddr_in更为方便 地址转换 IP地址通常由数字加点()的形式表示,而struct in_addr中使用的IP地址是由32位的整数表示的,为了转换我们可以使用下面两个函数: in_addr_t inet_addr(const char* strptr); 将一个点分十进制的IP转换成一个长整数型数(u_long类型) char *inet_ntoa(struct in_addr in) 函数里面a代表ascii,n代表network inet_aton是将a.b.c.d形式的IP转换为32位的IP,存储在inp指针里面,inet_ntoa是将32位IP转换为a.b.c.d的格式 套接字与地址的绑定 绑定IP地址和端口号到socket sockfd:要绑定的socket描述符 my_addr:指向含有本机IP地址和端口号等信息的sockaddr结构的指针 addrlen:通常设为sockaddr结构的长度 返回值:成功返回0,否则返回-1 Socket编程函数 connect用于与服务器建立连接 sockfd:sockfd描述符 serv_addr:为指向sockaddr结构的指针 addrlen:设为sockaddr结构的长度 返回值:0成功,-1错误 Socket编程函数 listen设置服务器能处理的最大连接要求 sockfd:socket描述符 backlog:用来制定请求队列中允许的最大请求数,系统默认值为20,0表示无限制 返回值:0成功,-1失败 网络通信涉及到具体物理硬件的细节,通信的数据格式,用户数据表达方式。 为了尽可能的将问题细化,以方便提出解决方案,OSI(国际标准化组织)将网络通信的细节问题切割成七层,每方面具体解决其中一个问题; OSI参考模型: 物理层:网络通信的电器指标问题;(数据对应到物理硬件上,由电平以及频率决定,电子电气专业关注) 数据链路层:站在计算机通信的角度,如何将数据按照0和1的形式处理;另外如果出错,如何检测出来(差错检测处理); 网络层:处理以字节为基本单位的通信数据;(字节层面上的差错检测);不同网络之间的通信解决;数据传输时,路由的选择,选择最佳线路;寻址,找到目标进程; 网络层以上,不关注通信技术细节问题,关注通信面向特定领域问题。 传输层: 面向的领域传输数据是优先考虑效率 还是 可靠性;TCP|UDP 会话层、表示层、应用层:实际应用中并不具体细分,针对用户的通信面向哪些领域,例如邮件通信、网页通信、文件传输通信等不同领域,有不同的协议遵循; TCP/IP美国军方制定,大体上和OSI标准对应; 嵌入式关注:传输层数据传输时,如何控制效率以及安全性; 网络层: ARP协议(地址解析协议),跟以太网关系密切,实现寻址;(由IP地址,分析得到MAC地址); RARP协议:反向地址解析协议; ICMP控制报文协议 :网络层数据的检错处理;从技术角度来说,ICMP就是一个“错误侦测与回报机制”。 * int socket(int domain, int type, int protocol); domain:域,IPV4(32位) IPV6(6字节) type:数据传输方式 SOCK_RAW(裸数据传输,面向比特流,与TCP/IP关系不大) SOCK_SEQPACKET(定长、有编号的报文) protocol:默认0,按照域和数据传输方式确定 传输协议; 完整的socket需要5要素:本地ip地址、端口port,远程地址、端口,通信协议; * * * * INADDR_ANY就是指定地址为的地址,这个地址事实上表示不确定地址,或“所有地址”、“任意地址” * * contents Linux网络概述 Linux网络编程基础 TCP网络程序设计 UDP网络程序设计 Linux并发服务器设计 Linux网络优势 Linux为用户提供了完善的、强大的网络功能 1、完善的内置网络。其他操作系统不包含如此紧密地和内核结合在一起的网络部分 2、Linux免费提供了大量支持Internet的软件,Internet是在Unix领域中建立并繁荣起来的,在这方面使用Linux是相当方便的,用户能用Linux与世界上的其他人通过Internet网络进行通信 3、用户能通过一些Linux命令完成内部信息或文件的传输 Linux网络优势 4、远程访问。Linux不仅允许进行文件和程序的传输
文档评论(0)