客户-服务器模型
2016-07-13 21:39
316 查看
大部分网络应用程序在编写时都假设一端是客户,另一端是服务器,其目的是为了让服务器为客户提供一些特定的服务。
可以将这种服务分为两种类型:重复型或并发型。重复型服务器通过以下步骤进行交互:
I1. 等待一个客户请求的到来。
I2. 处理客户请求。
I3. 发送响应给发送请求的客户。
I4. 返回I 1步。
重复型服务器主要的问题发生在I 2状态。在这个时候,它不能为其他客户机提供服务。
相应地,并发型服务器采用以下步骤:
C1. 等待一个客户请求的到来。
C2. 启动一个新的服务器来处理这个客户的请求。在这期间可能生成一个新的进程、任务或线程,并依赖底层操作系统的支持。这个步骤如何进行取决于操作系统。生成的新服务器对客户的全部请求进行处理。处理结束后,终止这个新服务器。
C3. 返回C 1步。
并发服务器的优点在于它是利用生成其他服务器的方法来处理客户的请求。也就是说,每个客户都有它自己对应的服务器。如果操作系统允许多任务,那么就可以同时为多个客户服务。
对服务器,而不是对客户进行分类的原因是因为对于一个客户来说,它通常并不能够辨别自己是与一个重复型服务器或并发型服务器进行对话。
一般来说, TCP服务器是并发的,而UDP服务器是重复的,但也存在一些例外。
可以将这种服务分为两种类型:重复型或并发型。重复型服务器通过以下步骤进行交互:
I1. 等待一个客户请求的到来。
I2. 处理客户请求。
I3. 发送响应给发送请求的客户。
I4. 返回I 1步。
重复型服务器主要的问题发生在I 2状态。在这个时候,它不能为其他客户机提供服务。
相应地,并发型服务器采用以下步骤:
C1. 等待一个客户请求的到来。
C2. 启动一个新的服务器来处理这个客户的请求。在这期间可能生成一个新的进程、任务或线程,并依赖底层操作系统的支持。这个步骤如何进行取决于操作系统。生成的新服务器对客户的全部请求进行处理。处理结束后,终止这个新服务器。
C3. 返回C 1步。
并发服务器的优点在于它是利用生成其他服务器的方法来处理客户的请求。也就是说,每个客户都有它自己对应的服务器。如果操作系统允许多任务,那么就可以同时为多个客户服务。
对服务器,而不是对客户进行分类的原因是因为对于一个客户来说,它通常并不能够辨别自己是与一个重复型服务器或并发型服务器进行对话。
一般来说, TCP服务器是并发的,而UDP服务器是重复的,但也存在一些例外。
相关文章推荐
- Java 入门 多线程 之 多线程返回用户ID(二)
- POJ 3463 Sightseeing
- JAVA之旅(二十九)——文件递归,File结束练习,Properties,Properties存取配置文件,load,Properties的小练习
- 使用Phoenix将SQL代码移植至HBase
- JAVA之旅(二十九)——文件递归,File结束练习,Properties,Properties存取配置文件,load,Properties的小练习
- 海贼王十大人生哲理!那些让我们活的更好的信念~
- Ensemble Learning 之 Gradient Boosting 与 GBDT
- JSP 的学习经验总结
- 对于#include <filename.h> 和 #include “filename.h”,以下说法错误的是( )。
- HDU 2216 Game III
- Android图片呈现圆角化
- 【转载】CMake 简介和 CMake 模板
- MVC设计模式
- 神经网络中的参数的求解:前向和反向传播算法
- Service解析
- 衡量查找算法效率的主要标准是( )。
- 获取comboBox里面的item使用的方法
- HDU 2209 翻纸牌游戏
- hdu 1027
- Postgresql内存上下文分析