客户-服务器交互模型知识讲解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在TCP/IP互联网中,服务器程序通常使用TCP 协议或UDP协议的端口号作为自己的特定标志。
响应并发请求
具有一个以上控制线程(有些系统使用术语进程 或任务来表示控制线程) 的程序称为并发(c o n c u r r e n t)程序。
并发性是客户/服务器交互模式的基础,因为一 个并发服务器同时为多个客户提供服务,而不要 求每个客户等待服务器对前一个客户的服务结束。
解决方案:
重复服务器方案:使用请求队列。一般用于处理 可在预期时间内处理完的请求,针对于面向无连 接的客户-服务器模型。
并发服务器方案:使用守护进程,为每一个客户 请求创建子进程,由子进程响应请求。一般用于 处理不可在预期时间内处理完的请求,针对于面 向连接的客户-服务器模型。
服务器程序的安全问题
请求、应答与数据流向
信息在客户与服务器之间沿任一方向或两个方向 传递。虽然许多服务安排成客户发送一个或多个 请求而服务器返回应答的方式,但其他的交互也 是可能的。
传输协议与客户/服务器交互
客户与服务器的交互直接通过传输协议建立通信并收发信息。 传输协议接着使用更低层的协议来收发自己的信息。因此, 一台计算机不论是用来运行客户程序还是服务器程序都需 要一个完整的协议栈。
一台计算机上的多种服务
一台服务器类计算机能够同时提供多种服务,每种服务需要 一个独立的服务器程序。在一台计算机上运行多种服务是实 际可行的,因为服务器在等待请求到来时是不占用计算资源 的。
服务器要求:
一套足够强大的计算机系统能够同时运行多个客 户与服务器,这样就需要在两方面具有足够的能 力。
计算机必须具有足够的硬件资源(例如一个快速 的处理器和足够的存储器)
服务器、客户端程序的编写
– 设置各控件的属性,在相应的事件中调用方法
发送 接收
– 程序启动时要绑定端口
此课件下载可自行编辑修改,仅供参考! 感谢您的支持,我们努力做得更好!谢谢
有允许多个应用程序并发执行的操作系统(例如 U N I X或Windows 200 server)。在这样的系统 上,对应每种提供的服务有一个服务器程序在运 行。
C/S实现中需要解决的主要问题:
标志一个特定的服务。 响应并发请求。 服务器程序的安全问题。
标志一个特定的服务
传输协议提供的一套机制能让客户无二义性地指 明所希望的服务。这种机制赋给每个服务一个唯 一的标识,并要求服务器和客户都使用这个标识。
调用SendData方法发送数据,而当接收到对方的数据时,将 产生DataArrival事件,利用GetData方法获取收到的数据
– 主机之间利用UDP通信-非连接服务
客户机程序设置好RemoteHost属性和RemotePort属性
服务器程序设置好LocalPort属性
调用SendData方法发送数据,而当接收到对方的数据时,将 产生DataArrival事件,利用GetData方法获取收到的数据
客户/服务器模式
– 指两个应用程序,客户向服务器发出请 求,服务器作出响应。
服务器处于守候状态,并监视客户端的请 求
客户端提出请求从而启动通信 服务器接收请求,将执行请求的任务,并
把结果返回给客户
客户/服务器模式示意图
客户
请求 响应
传输层 互联层 网络接口层
互联 网
服务器
响应 请求
传输层 互联层 网络接口层
wk.baidu.com
服务器程序与服务器类计算机
对服务器这个术语有时会产生一些混淆。通常地, 这个术语指一个被动地等待通信的程序,而不是 运行它的计算机。然而,当一台计算机被用来运 行一个或几个服务器程序时,这台计算机本身有 时也被(不正确地)称作服务器。硬件供应商加 深了这种混淆,因为他们将那类具有快速C P U、 大容量存储器和强大操作系统的计算机称为服务 器。
客户与服务器的特性-客户端
是一个在需要进行远程访问时临时成为客户,同 时也做其他的本地计算的应用程序。
直接被用户调用,只为一个会话运行。 在用户的个人计算机上本地运行。 主动地启动与服务器的通信。 能访问所需的多种服务,但在某一时刻只能与一
个远程服务器进行主动通信。 不需要特殊的硬件和高级的操作系统。
客户与服务器的特性-服务器端软件
是一个用来提供某个服务的有特殊权限的专用程序,可 以同时处理多个远程客户请求。
在系统启动时自动调用,不断地为多个会话服务。 在一台共享计算机上运行(即,不是在用户的个人计算
机上)。 被动地等待来自远端客户的通信 接受来自任何客户的通信请求,但只提供一种服务。 需要强大的硬件和高级的操作系统支持。
– 主机之间利用TCP通信-有连接的服务
客户程序设置控件的RemoteHost属性和RemotePort属性, 并调用Connect方法
服务器程序设置LocalPort属性,然后调用Listen方法
当客户请求建立连接时,服务器程序产生 ConnectionRequest事件,而服务器需要在事件中调用 Accept方法完成连接的建立
服务器程序具有相当高的特权 操作系统对服务器程序试图访问的用
户文件通常不加限制。
套接字接口
利用操作系统提供的编程界面开发应用程序,实 现与操作系统内核的操作
TCP/IP提供的典型编程界面为socket调用
– VB6.0以Winsock控件方式出现
Winsock控件简介
– 编程人员通过该控件访问TCP和UDP网络服务,通过 设置控件的属性和调用方法来实现
客户-服务器交互模型
建立通信
虽然互联网通信与电话拨号有相似之处,但两个 应用使用互联网的方式与两个人使用电话系统的 方式仍有一个重要的区别。这个区别在于协议软 件没有一个相当于电话铃的机制—协议软件无 法通知应用通信的到达,应用也无法确认接受任 何收到的信息。
应用程序通信的解决策略:
希望通信的应用必须在外部资源试图通信之前先 与协议软件进行交互。应用通知本地协议软件希 望得到一个特定类型的信息,然后等待。当收到 的信息恰好与应用所指定的相符时,协议软件将 其传给应用。当然,一个通信所涉及的两个应 用不能都在等待信息到达—一个应用必须主动地 启动交互,另一个则被动地等待。
相关文档
最新文档