synapse socket总结一:服务器模型
2016-01-08 01:05
281 查看
synapse (http://synapse.ararat.cz/doku.php)的源码简洁明了,属于轻量级的阻塞式socket通讯组件包,更多的功能需要自己基于它的基础上去封装实现。相对于indy(阻塞)和ics(非阻塞/阻塞)来说,我更喜欢synapse的原生和纯粹,因此对其进行了简单的学习和总结。
在着手学习synapse之前,有必要先对常见的服务器模型做下回顾,这对接下来解读synapse代码非常有帮助。
在目前的网络应用中,大多数是一个服务端对应多个客户端的联网方式,那么我就着重分析一下这种情景下服务器模型:
并发服务器:服务器在同一时刻可以响应多个客户端的请求。
TCP循环服务器一次只能处理一个客户端的请求,只有在这个客户的所有请求满足后,服务器才可以继续后面的请求。如果有一个客户端占住服务器不放时,其它的客户机都不能工作了,因此,TCP服务器一般很少用循环服务器模型的。
其模型为:
?
TCP并发服务器
TCP并发服务器的思想是每一个客户机的请求并不由服务器直接处理,而是由服务器创建一个子进程来处理。
其模型为:
?
UDP循环服务器
UDP循环服务器每次从套接字上读取一个客户端的请求->处理->然后将结果返回给客户机,因为UDP是非面向连接的,没有一个客户端可以老是占住服务端。只要处理过程不是死循环,服务器对于每一个客户机的请求总是能够满足。
其模型为:
?
UDP并发服务器
人们把并发的概念用于UDP就得到了并发UDP服务器模型. 并发UDP服务器模型其实是简单的.和并发的TCP服务器模型一样是创建一个子进程来处理的 算法和并发的TCP模型一样,除非服务器在处理客户端的请求所用的时间比较长以外,人们实际上很少用这种模型。
其模型为:
?
转载请注明:梧桐树下 » synapse socket总结一:服务器模型
http://www.pfeng.org/archives/449
在着手学习synapse之前,有必要先对常见的服务器模型做下回顾,这对接下来解读synapse代码非常有帮助。
在目前的网络应用中,大多数是一个服务端对应多个客户端的联网方式,那么我就着重分析一下这种情景下服务器模型:
分类:
循环服务器:服务器在同一时刻只能响应一个客户端的请求;并发服务器:服务器在同一时刻可以响应多个客户端的请求。
原理及模型:
TCP循环服务器TCP循环服务器一次只能处理一个客户端的请求,只有在这个客户的所有请求满足后,服务器才可以继续后面的请求。如果有一个客户端占住服务器不放时,其它的客户机都不能工作了,因此,TCP服务器一般很少用循环服务器模型的。
其模型为:
?
TCP并发服务器的思想是每一个客户机的请求并不由服务器直接处理,而是由服务器创建一个子进程来处理。
其模型为:
?
UDP循环服务器每次从套接字上读取一个客户端的请求->处理->然后将结果返回给客户机,因为UDP是非面向连接的,没有一个客户端可以老是占住服务端。只要处理过程不是死循环,服务器对于每一个客户机的请求总是能够满足。
其模型为:
?
人们把并发的概念用于UDP就得到了并发UDP服务器模型. 并发UDP服务器模型其实是简单的.和并发的TCP服务器模型一样是创建一个子进程来处理的 算法和并发的TCP模型一样,除非服务器在处理客户端的请求所用的时间比较长以外,人们实际上很少用这种模型。
其模型为:
?
http://www.pfeng.org/archives/449
相关文章推荐
- PHP烂代码救星-之上传2附件《读thinkphp代码有感》 2016-01-07
- [笔记]几个简单有用的PHP函数
- WPF与MySql数据库连接
- Oracle Net Manager的配置过程
- 查看数据库实例名的方法:
- 1005——Number Sequence
- CentOS 6.5(64bit)安装GCC4.8.2+Qt5.2.1(替换GCC的链接库)
- UiToolBarDemo
- 来自午夜的dos攻击
- 制作OTA U盘升级包
- mac OS X配置jdk环境变量
- Qt打开外部程序和文件夹需要注意的细节(Qt调用VC写的动态库,VC需要用C的方式输出函数,否则MinGW32编译过程会报错)
- 加密解密技术基础、PKI、及创建私有CA
- Docker:Dockerfile语法 以及 一些关键字的区别
- css中rem的认识
- 基于jquery实现的类似百度搜索的输入框自动完成功能
- 4.Median of Two Sorted Arrays(13.12%)
- OS X 上利用 Homebrew 安装 Android SDK
- 构建金字塔
- eclipse 创建 maven web 项目教程