




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计计算机网络络 第七讲 客户/服务器编程 (Chapter26-28) 房鼎益 电子邮件: 2 2 网络络与分布式系统统研究室(DisNet Lab of NWU) * 计算机网络 第26章 客户/服务器交互 第第2626章章 客户客户/ /服务器交互服务器交互 n应用层概述 n客户/服务器交互概念 n需要澄清的几个概念 n标识一个特定服务 n并发服务器 3 3 网络络与分布式系统统研究室(DisNet Lab of NWU) * 计算机网络 第26章 客户/服务器编程 应用层概述应用层概述 n应用层提供面向用户的服务 n应用层利用底层协议提供的服务进行通信 通用的可靠数据传输服务 寻址(主机、应用程序)服务 n应用程序之间的通信都使用同一种交互方式,这种交互方式称为客户/服务器 (Client/Server)模式。 4 4 网络络与分布式系统统研究室(DisNet Lab of NWU) * 计算机网络 第26章 客户/服务器编程 客客户户户户/ /服服务务务务器交互器交互概念概念(1 1) n客户/服务器交互:客户应用主动地启动通信,而服务器应用被动地等待。 n客户端软件的特性: 是一个普通的应用程序 在用户的计算机上本地运行 直接被用户调用,可分时访问多个服务 主动地与服务器启动通信 不需要特殊的硬件和高级的操作系统 5 5 网络络与分布式系统统研究室(DisNet Lab of NWU) * 计算机网络 第26章 客户/服务器编程 客客户户户户/ /服服务务务务器交互器交互概念概念(2 2) n服务器软件的特性: 是一种专门用来提供某一种服务的程序 在一台共享计算机上运行 在系统初启时自动启动,可以同时与多个远程客户进行通信 被动地等待来自任意客户的通信 需要强大的硬件和高级的操作系统支持 6 6 网络络与分布式系统统研究室(DisNet Lab of NWU) * 计算机网络 第26章 客户/服务器编程 几个需要澄清的概念几个需要澄清的概念 n服务器:指一个被动地等待通信的程序。 n服务器级计算机:具有快速CPU、 大存储量和强大操作系统的计算机。 n一台服务器级计算机可以提供多重服务,以共享资源,减小开销,便于管理。 n服务器程序既可以接收信息也能发送信息,还可以成为客户。 n客户并不限于访问一种服务器。 7 7 网络络与分布式系统统研究室(DisNet Lab of NWU) * 计算机网络 第26章 客户/服务器编程 客客户户户户/ /服服务务务务器交互器交互服务标识服务标识(service ID)(service ID) nTCP赋予每个服务一个唯一的协议端口号。服务器通过协议端口号来指定它所提供的服 务,然后被动地等待通信。 n客户在发送请求时通过协议端口号来指定它所希望的服务。服务器端计算机通过此端口号将收 到的请求转发给正确的服务器。 n每一个会话由两个标识唯一确定:服务器和客户端的(IP地址,端口号)。客户端的端 口号可以是任意选定,但必须唯一。 8 8 网络络与分布式系统统研究室(DisNet Lab of NWU) * 计算机网络 第26章 客户/服务器编程 客客户户户户/ /服服务务务务器交互器交互并发服并发服 务务 n并发服务器是指一个服务器可以同时为多个客户提供服务。 n服务器在每一个客户请求到来时创建一个新的线程。如果有N个客户正在使用一台机器上 的服务,则存在N+1个提供该服务的线程:主线程等待更多的请求,同时有N个 从线程分别同一个客户进行交互。 n服务器端使用客户标识和服务器标识的结合来选择正确的并发服务器的副本。 9 9 网络络与分布式系统统研究室(DisNet Lab of NWU) * 计算机网络 第27章 套接字接口 第第2727章章 套接字套接字(socket)(socket)接口接口 n套接字API概念 n实现套接字API的过程 n用套接字进行读写 n其它套接字过程 n套接字、线程与继承 1010 网络络与分布式系统统研究室(DisNet Lab of NWU) * 计算机网络 第27章 套接字接口 套接字接口概念套接字接口概念 nAPI: 应用程序通过传输协议进行交互时所使用的接口称为应用程序接口(API)。 n通信协议只定义API应当提供的一般操作,而让操作系统来定义完成这些操作的API规范。 API允许应用程序在不同平台兼容。 n套接字API最初是BSD UNIX操作系统的一部分,后来成为工业界事实上的标准 。 n应用程序通过套接字进行通信的过程,与应用程序与文件进行数据交换是很相似的。 1111 网络络与分布式系统统研究室(DisNet Lab of NWU) * 计算机网络 第27章 套接字接口 套接字接口的过程套接字接口的过程 nSOCKET:创建一个新的套接字 nBIND:给服务器绑定一个传输层地址 nLISTEN:将服务器设为被动模式。 nACCEPT:接收客户的一个请求 nCONNET:客户向服务器发起连接 nSEND:向一个连接的套接字发送数据 nRECV: 从一个连接的套接字接收数据 nCLOSE: 终止一个连接 1212 网络络与分布式系统统研究室(DisNet Lab of NWU) * 计算机网络 第27章 套接字接口 用套接字进行读写用套接字进行读写 n套接字允许使用read和 write进行数据传输 nread和 write有三个参数:套接字描述符,缓冲区,缓冲区长度 nread和 write必须用于已连接的套接字 n使用read和 write的优点是应用程序可以同一个描述符进行数据传 输,而无需知道此描述符对应的是一个文件还是一个套接字。因此可以用本地文件来测试套 接字。 1313 网络络与分布式系统统研究室(DisNet Lab of NWU) * 计算机网络 第27章 套接字接口 其它套接字过程其它套接字过程 nGetsockname:获得套接字本地完整地址。 nGetpeername:获得套接字远端完整地址。 nGetsockopt: 获得当前套接字选项。 nSetsockopt: 设置当前套接字选项。 nGethostbyname: 由计算机名字获得IP地址。 nGethostbyaddr:由IP地址获得计算机名字。 nGetprotobyname: 由协议名字得到协议号。 1414 网络络与分布式系统统研究室(DisNet Lab of NWU) * 计算机网络 第27章 套接字接口 套接字、线程与继承套接字、线程与继承 n每个新创建的线程从创建它的线程继承所有套接字的一个副本。 n服务器主线程为每一个连接的客户创建一个新的套接字和新线程。 n主线程关闭新套接字,新线程关闭旧套接字。 n系统对套接字的引用进行计数,计数器为0才能删除套接字。 1515 网络络与分布式系统统研究室(DisNet Lab of NWU) * 计算机网络 第28章 客户/服务器编程 第第2828章章 客户客户/ /服务器编程实例服务器编程实例 n面向连接的通信 n流服务与多重recv调用 n套接字过程与阻塞 n客户访问不同的服务 n其它客户访问服务器 n无连接的通信 1616 网络络与分布式系统统研究室(DisNet Lab of NWU) * 计算机网络 第28章 客户/服务器编程 编程实例编程实例面向连接的通信面向连接的通信 1717 网络络与分布式系统统研究室(DisNet Lab of NWU) * 计算机网络 第28章 客户/服务器编程 编程实例编程实例面向连接的通信面向连接的通信 MS Socket 1818 网络络与分布式系统统研究室(DisNet Lab of NWU) * 计算机网络 第28章 客户/服务器编程 流服务与多重流服务与多重recvrecv调用调用 n在服务器端,只调用了一次send()。 n在客户端,循环调用recv()接收数据。 nTCP并不保证数据在单个数据段中发出。 nTCP也不保证recv返回的恰好是send所传送的数据量。 nTCP保证send将数据依次发送 nTCP保证recv调用返回一个或多个数据。 1919 网络络与分布式系统统研究室(DisNet Lab of NWU) * 计算机网络 第28章 客户/服务器编程 套接字过程与阻塞套接字过程与阻塞 n在程序调用套接字过程时,程序会因为套接字过程需要等待其它资源或过程而被挂起(阻塞)。 n程序被挂起时不使用CPU时间,挂起时间可以任意长。 n阻塞过程有:accept, connect, send, recv, gethostbyname等。 2020 网络络与分布式系统统研究室(DisNet Lab of NWU) * 计算机网络 第28章 客户/服务器编程 测试客户测试客户/ /服务器程序服务器程序 n可以去访问其它的服务器来测试客户。 n可以使用telnet客户程序测试服务器。 2121 网络络与分布式系统统研究室(DisNet Lab of NWU) * 计算机网络 第28章 客户/服务器编程 编程实例编程实例无连接的通信无连接的通信 2222 网络络与分布式系统统研究室(DisNet Lab of NWU) * 计算机网络 第28章 客户/服务器编程 编程实例编程实例无连接
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 区块链加密基础知识培训课件
- 区分生熟鸡蛋课件
- 勇敢的秘密课件
- 助理造价师课件
- 助理知识培训总结课件
- 网络教育平台课程设计与开发指南
- 北京市中考地理模拟试题集合
- 沥青路面施工质量控制方案书
- 沧州航空职业学院《素描场景》2024-2025学年第一学期期末试卷
- 江西财经职业学院《机械与动力仿真实践机械类》2024-2025学年第一学期期末试卷
- 《圆的周长》说课ppt
- GIS产品维护检修
- 2023年临沧市市级单位遴选(选调)考试题库及答案
- GSP兽药经营质量管理制度
- 试模报告单模板
- 建设工程质量检测见证取样员手册
- 公司介绍-校园招聘-北汽
- 五年级上册数学练习题-数学好玩 图形中的规律|北师大版 含答案
- 《活着》读书分享优秀课件
- 微型桩施工方案
- 《一站到底》答题库大全之一(共800题)
评论
0/150
提交评论