- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章 面向连接的网络通信实现 1. 万维网通信的特点 2. 传输层协议概述 3. 传输控制协议TCP 4. TCP传输协议报文头格式 5. TCP/IP通信的实现 6. TCP/IP 网络编程举例 §3.3 传输控制协议TCP 1. TCP协议特点 2. TCP的连接 3. TCP传输连接管理 §3.4 TCP传输协议报文头格式 §3.5 TCP/IP通信的实现 1.系统调用机制 2. 套接字Socket的作用 3. 套接字连接的建立 socket有多种不同意思 应用编程接口 API 称为 socket API, 简称为 socket。 socket API 中使用的一个函数名也叫作socket。 调用 socket 函数的端点称为 socket。 调用 socke t函数时其返回值称为 socket描述符,可简称为 socket。 在操作系统内核中连网协议的 Berkeley 实现,称为 socket 实现。 伯克利套接字(Berkeley Socket) TCP套接字传输原语 §3.6 TCP/IP 网络编程举例 1. 万维网通信的特点 2. 传输层协议概述 3. 传输控制协议TCP 4. TCP传输协议报文头格式 5. TCP/IP通信的实现 6. TCP/IP 网络编程举例 套接字地址结构 IP 地址和如何处理它们 假设你已经有了一个sockaddr_in结构体ina,你有一个IP地 址132.241.5.10要储存在其中,你就要用到函数inet_addr(),将IP地址从 点数格式转换成无符号长整型。使用方法如下: ina.sin_addr.s_addr = inet_addr(132.241.5.10); 注意,inet_addr()返回的地址已经是网络字节格式, socket()函数 调用格式 int socket(int domain, int type, int protocol); 参数含义: domain:设置成 “AF_INET”,象 sockaddr_in结构; type:是 SOCK_STREAM 和 SOCK_DGRAM类型。 Protocol:设置为 “0”。 返回 返回在系统调用中要用到的 socket 描述符,或在错误的时候返回-1。 bind()函数 将套接字和机器上的一定的端口关联起来。 调用方法: int bind(int sockfd, struct sockaddr *my_addr, int addrlen); 参数 Sockfd:调用 socket 返回的文件描述符 ; my_addr:数据结构 struct sockaddr指针,保存本机地址(即端口和 IP 地址) 信息; Addrlen:设置为 sizeof(struct sockaddr)。 返回 绑定成功与否标致。 Bind()函数使用举例 connect()程序-如何连接到远程主机 系统调用 int connect(int sockfd, struct sockaddr *serv_addr, int addrlen); 参数 sockfd 是系统调用 socket() 返回的套接字文件描述符; serv_addr 是 保存着目的地端口和 IP 地址的数据结构 struct sockaddr ; addrlen 设置 为 sizeof(struct sockaddr) 。 使用方法 listen()函数 系统调用 int listen(int sockfd, int backlog); 参数 sockfd 是调用 socket() 返回的套接字文件描述符 backlog 是在进入队列中允许的连接数目,即进入的连接是在队列中一直等待直到你接受 (accept()函数)连接 返回 在发生错误的时候返回-1,并设置全局错误变量 errno。 accept()函数 函数调用 SOCKET accept(int sockfd, void *addr, int *addrlen); sockfd :是和 listen() 中一样的套接字描述符 addr:指向局部的数据结构 sockaddr_in 的指针。这是要求接入的信息所要去的地 方(你可以测定那个地址在那个端口呼叫你)。 返回 将返回一个新的套接字文 件描述符。这样有两个套接字,原来的一个还在侦听你的那个端口,而新套接字则准备发送 (send()) 和接收 ( recv()) 数据。 使用 main() { int sockfd, new_fd; /* 在sock_fd上侦听,在new_fd上创建新链接*/ struct sockaddr_in my_addr; /* 地
您可能关注的文档
最近下载
- 2025年危险品水路运输从业资格考试复习题库资料(浓缩500题).pdf
- 标准图集-苏S13-2022 预制混凝土排水检查井.pdf VIP
- T/CSWSL 036-2024N-酰基高丝氨酸内酯酶.pdf
- 2025至2030中国宫颈癌疫苗行业市场占有率及投资前景评估规划报告.docx VIP
- 2025至2030汽车防爆膜行业市场占有率及投资前景评估规划报告.docx VIP
- 2025至2030热熔线标涂料行业市场发展分析及投资前景报告.docx VIP
- 2021年禁毒社工招聘考试试题.doc VIP
- 医院病理技师礼仪与病理诊断.pptx VIP
- 2021年度禁毒社工招聘考试试题.doc VIP
- 《十二公民》剧本.docx VIP
文档评论(0)