- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机网络 第八章 运输层 8.4 Socket编程 8.4.1 Socket接口概念 8.4.2 Socket编程模型 8.4.3 Unix Socket编程 8.4.4 WinSock编程 8.4.1 Socket接口概念 Socket接口是TCP/IP网络通信的API。它规定了许多函数和例程,程序员可以用它们来开发TCP/IP网络上的应用程序。 1、网间进程通信 不同主机的进程间的相互通信。 8.4.1 Socket接口概念 端口 网络中的通信端点,是操作系统可分配的一种资源,用于标识通信的进程(如TCP或UDP端口)。 端口号有两种基本分配方式 全局分配 小于1024的端口号作为全局分配的保留端口 本地分配(动态连接) 本地操作系统提供的一个本地唯一的端口号。 大于1024的端口号用于本地分配的自由端口。 8.4.1 Socket接口概念 地址 网络通信中的进程的三级寻址: 网络地址; 网络上的主机地址; 主机上的进程标识。 TCP/IP主机地址由网络ID和主机ID组成(32位IP地址);进程标识使用端口号(16位)。 8.4.1 Socket接口概念 连接 两个进程间的通信链路称为连接。 半相关 网络中在全局唯一标识一个进程的三元组:(协议,本地地址,本地端口号)。 它指定连接的每半部分。 全相关 标识一个完整的网间通信的五元组:(协议,本地地址,本地端口号,远地地址,远地端口号)。 即两个协议相同的半相关组合成一个合适的相关,即完全组成一连接。 8.4.1 Socket接口概念 2、服务方式 各层向紧邻上层提供的一组操作。 下层是服务提供者,上层是请求服务的用户。 面向连接和无连接服务 TCP提供面向连接的字节流服务。(提供顺序控制、差错控制、流控制服务) UDP提供无连接的数据报服务。 全双工/半双工、缓存、紧急数据 8.4.1 Socket接口概念 3、客户/服务器(Client/Server,C/S)模式 客户向服务器发出服务请求,服务器接收到请求后,提供相应的服务。 C/S模式的建立基于以下两点: 建立网络的起因是网络中软硬件资源、运算能力和信息不均等,需要共享 。 网间进程通信完全是异步的。 8.4.1 Socket接口概念 C/S模式的操作过程: 服务器方(进程)先启动,并根据请求提供相应服务 a) 打开一通信通道并告知本地主机,它愿意在某一端口上(如HTTP使用80)接收客户请求; b) 等待客户请求到达该端口; c) 接收到服务请求,处理该请求并发送应答信号。 d) 返回第二步,等待另一客户请求。 e) 关闭服务器。 8.4.1 Socket接口概念 客户方(进程) a) 打开一通信通道,并连接到服务器所在主机的特定端口; b) 向服务器发服务请求报文,等待并接收应答;继续提出请求...... c) 请求结束后关闭通信通道并终止。 从上面所描述过程可知: 客户与服务器进程的作用是非对称的,因此编码不同。 8.4.1 Socket接口概念 4、TCP/IP socket提供三种类型套接字 流式(stream)套接字:提供面向连接的数据流传输服务。 数据报式(datagram)套接字:提供无连接服务。 原始式(raw)套接字:允许对较低层协议,如IP、ICMP直接访问。 8.4.2 Socket编程模型 Socket网络通信模型 网络通信最终是由两台主机上的两个进程完成。 网络通信对话的每一端称为一个端点 Socket是网络通信过程中端点的抽象表示。 Socket由主机地址和TCP/UDP端口号等组成。为了通过Socket接口进行网络通信,程序在网络对话的每端都需要一个Socket。 从网络的角度看,Socket是通信连结的端点;从程序设计者的角度看,Socket是编写网络通信程序的API。 8.4.2 Socket编程模型 8.4.3 Unix Socket编程 Socket地址结构 在sys/socket.h中定义: struct sockaddr 在netinet/in.h中定义: struct in_addr struct sockaddr_in Port //16bit Addr //32bit 8.4.3 Unix Socket编程 1、建立一个Socket 调用Socket函数,指定所要求的协议的类型(TCP/UDP/IP等),返回一个类似文件描述符的句柄: Socket_handler = socket(int family,int type,int protocol) 在通信完成之后,调用close函数来关闭Socket,释放所分配的资源: Result = close(int sock_handle) 8.4.3 Unix Socket编程
您可能关注的文档
最近下载
- 2025年辽宁省初中学业水平考试英语模拟试卷试题(含答案).pdf VIP
- 螺纹联接与螺旋传动介绍.ppt VIP
- 《大学美育》教案 第13课 光影流转的传奇 影视之美(二).docx VIP
- 小学生3500个常用汉字归类(带拼音).pdf VIP
- 《大学美育》教案 第12课 光影流转的传奇 影视之美(一).docx VIP
- 《大学美育》教案 第11课 五彩缤纷的世界:绘画之美(二).docx VIP
- Dahua大华以太网交换机(桌面式管理型)_WEB使用说明书_V1.0.0.pdf
- 党校中级考试资料.docx VIP
- (2025秋新版)人教版三年级数学上册全册教案.docx
- 智能体@AEI:Agentic Al,开启企业融合智简运维新范式.pdf
文档评论(0)