客户服务器模式及套接子.pptVIP

  • 4
  • 0
  • 约1.24万字
  • 约 64页
  • 2017-07-28 发布于湖北
  • 举报
第3章:互联网应用模式和API 相互作用的客户-服务器( Client/Server)模型 在TCP/IP互联网中,进程间相互访问的模式主要是客户—服务器交互模式 为什么选择客户-服务器模式 第一个原因:互联网中资源、运算能力和信息不均等的现实。 资源、运算能力不均:小到一个物理网络,往往是某些主机拥有大容量的外存,某些主机只有很少外存或没有外存,有些主机拥有打印机,有些主机没有;大到整个互联网,少数网点拥有超速运算能力,而大量网点由PC机构成……. 信息分布不均:比如名字信息、地址信息等。这些信息往往以数据库形式存在于少数特权主机当中,供局部或全局访问。这些信息一般具有公用性,为了节约整个网络的资源,没有必要在每一台机器上都维持一个拷贝。 不均等现象不可避免,而客户-服务器模式体现了这种现象并很好地适应了这种现象。 第二个原因:是技术性的。 互联网进程通信与单机进程通信不同:互联网通信完全是异步的,无法知道哪个主机会在何时发起通信。 因此,需要一种机制,为准备通信的进程之间建立联系,为两者的数据交换提供同步。 客户软件的特点 在进行通信时临时成为客户,但它也可在本地进行其他的计算,提供用户端基本应用功能框架。 被用户调用,在用户本地计算机上运行,在需要时主动向远地服务器发起通信。 可与多个服务器进行通信。 通常不需要特殊的硬件和很复杂的操作系统。 服务器软件的特点 专门用来提供某种服务的程序,可同时处理多个远地或本地客户的请求。 在共享计算机上运行。当系统启动时即自动调用并一直不断地运行着。 被动等待并接受来自多个客户的通信请求。 一般需要强大的硬件和高级的操作系统支持。 两个术语 在C/S模式中: 服务器:被动等待通信的程序。不是计算机。 服务器级计算机:运行服务器软件的功能强大的计算机。 C/S模式的传输机制 面向连接传输:使用面向连接的传输协议时,两个应用必须首先建立一个连接,然后在该连接上发送数据。 无连接传输:应用可以利用无连接接口在任何时间向任何目的发送消息。 客户和服务器在通信时,既可以使用面向连接传输协议,又可以使用无连接传输协议。当使用面向连接传输时,客户需要首先形成一个到特定服务器的连接,该连接在客户发送请求和接收响应的过程中保持不变。当客户完成对服务的使用时,必须关闭这一连接。 并发性 —客户-服务器交互模型的基础 并发服务器可以同时为多个客户提供服务,并不需要每个客户等待前一个客户的请求完成 大多数并发服务器都是动态操作的。即只有当请求到达时,服务器才会动态地为到来的请求创建一个新的线程。 服务器程序由两部分组成:主线程和服务线程。 一台运行多种服务器的计算机上,每种服务器如何识别发给自己的请求? 解决方法: 传输协议为每种服务分配一个惟一的标识符,服务器和客户必须使用这一标识符。 端口 端口就是运输层服务访问点 TSAP 端口的作用就是让应用层的各种应用进程都能将其数据通过端口向下交付给运输层,以及让运输层知道应当将其报文段中的数据向上通过端口交付给应用层相应的进程。 从这个意义上讲,端口是用来标志应用层的进程。服务器通过它明确所提供的服务 端口 端口用一个 16 bit 端口号进行标志。 端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。在因特网中不同计算机的相同端口号是没有联系的。 两类端口 一类是熟知端口,其数值一般为 0~1023。当一种新的应用程序出现时,必须为它指派一个熟知端口。 另一类则是一般端口,用来随时分配给请求通信的客户进程。 通信协议只是规定协议应该提供的操作,并不指定应用程序与协议进行交互时的API。 Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。 实现套接字API的过程 Socket过程 该过程创建一个套接字并返回一个整数描述字。 descriptor=socket( protofamily, type, protocol) listen过程 服务器调用该过程来等待来自客户的连接。 listen( socket, queuesize) send过程 如果套接字被连接,可以利用该过程发送数据。 send( socket, data, length, flags) recv过程 应用可以调用该过程从连接套接字中接收数据。 recv( socket, buffer, length, flags) 该实例套接

文档评论(0)

1亿VIP精品文档

相关文档