转:Delphi各种Socket组件的模式和模型
Delphi的大多数书籍里面都没有提到delphi的各种socket通信组件的模式和模型,有的书只讲解了windows的socket模式和模型,并没有归纳各种组件采用的模型,所以我们的程序员并不知道如何进行选择,只知道某组件好,为什么好,如何运用就不知道了。
笔者对这些组件进行了一个归纳,如下:
|
组件 |
单元 |
依赖 |
模式 |
模型 |
|
WebApp/CGI |
sockapp.pas |
Indy |
阻塞/非阻塞 |
select |
|
Indy |
阻塞/非阻塞 |
select |
||
|
ICS |
OverbyteIcsWSocket.pas |
非阻塞 |
WMAsyncSelect |
|
|
TTcpServer/TTcpClient |
sockets.pas |
阻塞/非阻塞 |
Select |
|
|
RealThinClient |
ICS变种 |
非阻塞 |
wsaasyncselect |
|
|
synapse |
blckSock.pas |
阻塞/非阻塞 |
Select |
|
|
TServerSocket TClientSocket |
ScktComp.pas |
阻塞/非阻塞 |
WSAAsyncSelect |
|
|
FastNet |
psock.pas |
WSAAsyncselect |
||
|
TSocketConnection |
TServerSocket TClientSocket |
从上面表格可以看出,没有一个组件使用下面4种模型:
阻塞模式
重叠端口
事件选择
完成端口
都只用到了:
Select
WSAAsyncselect
这两种模型,而其中使用WSAAsyncselect模型的,必然需要窗口,用来做服务的组件并不多。
我们再来分析各种服务端程序是采用什么模型:
|
软件 |
模型 |
|
Apache 2 |
IOCP Select |
|
Mysql 5 |
Select |
|
Erlang |
Select WSAEventSelect |
|
传奇 |
服务端使用TServerSocket,是有窗口的。 |
总结:只有indy和synapse适合做没有窗口的服务端。要么自己开发IOCP的模型的服务端也不错。
转:Delphi各种Socket组件的模式和模型的更多相关文章
- Delphi各种Socket组件的模式和模型
Delphi各种Socket组件的模式和模型 Delphi的大多数书籍里面都没有提到delphi的各种socket通信组件的模式和模型,有的书只讲解了windows的socket模式和模型,并没有归纳 ...
- 高性能 Socket 组件 HP-Socket v3.2.1 正式发布
HP-Socket 是一套通用的高性能 TCP/UDP Socket 组件,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C++.C ...
- 高性能 Socket 组件 HP-Socket v3.2.1-RC5 公布
HP-Socket 是一套通用的高性能 TCP/UDP Socket 组件,包括服务端组件.client组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C+ ...
- 高性能 Socket 组件 HP-Socket v3.2.1-RC4 公布
HP-Socket 是一套通用的高性能 TCP/UDP Socket 组件,包括服务端组件.client组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C+ ...
- 高性能 Socket 组件 HP-Socket v3.2.1-RC2 公布
HP-Socket 是一套通用的高性能 TCP/UDP Socket 组件,包括服务端组件.client组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C+ ...
- 高性能 Socket 组件 HP-Socket v3.2.1 正式公布
HP-Socket 是一套通用的高性能 TCP/UDP Socket 组件,包括服务端组件.client组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统,提供 C/C+ ...
- 高性能 Socket 组件 HP-Socket v3.2.1-RC3 公布
HP-Socket 是一套通用的高性能 TCP/UDP Socket 组件,包括服务端组件.client组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP 通信系统.提供 C/C+ ...
- 高性能 Socket 组件 HP-Socket v3.2.1-RC1 公布
HP-Socket 是一套通用的高性能 TCP/UDP Socket 组件.包括服务端组件.client组件和 Agent 组件.广泛适用于各种不同应用场景的 TCP/UDP 通信系统.提供 C/C+ ...
- 高性能 Socket 组件 HP-Socket v3.1.3 正式发布
HP-Socket 是一套通用的高性能 Windows Socket 组件,提供服务端组件(IOCP 模型)和客户端组件(Event Select 模型),广泛适用于 Windows 平台的 TCP/ ...
随机推荐
- Winform基础知识
1.关于登陆部分 this.DialogResult = DialogResult.OK; this.Close(); FrmLogin login = new FrmLogin(m_CurUser) ...
- MySQL起航
以前学php的时候用过MySQL,但是都没有认真地学习,只会在php代码中用几条极其简单SQL语句,以为MySQL就这么点用法,当时还在嘲笑学长们为什么会觉得MySQL难学,真是太尴尬了.好在开了数据 ...
- SVN小贴士
我辛辛苦苦写的到哪里了? SVN小贴士SVN服务器上的代码项目组公用,你的每一个提交都会体现给项目组每个人,所以提交要慎重,要注意避免代码冲突,使用SVN小贴士: 1.提前宣布开发计划,保持项目组成员 ...
- [GodLove]Wine93 Tarining Round #2
比赛链接: http://acm.hust.edu.cn/vjudge/contest/view.action?cid=44704#overview 题目来源: ZOJ Monthly, June 2 ...
- IOS开发-当遇到tableView整体上移时的解决方案
方案一在使用了navigationController后,当界面进行跳转往返后,时而会出现tableView上移的情况,通常会自动上移64个像素,那么这种情况,我们可以关闭tableView的自动适配 ...
- git error
一,今天在上传代码时出错: $ git push -u origin mastererror: The requested URL returned error: 403 Forbidden whil ...
- thrift demo
基于上一篇博客,安装thrift complier之后,就需要进行跑跑程序,来看看是否如同预期的那种效果. 前面的thrift compiler的主要作用,其实就是为了IDL的,就是防止客户端和服务端 ...
- jquery中checkbox选中的问题之prop&attr惹的祸
一个网上很多的例子如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http: ...
- [solr] - 索引数据删除
删除solr索引数据,使用XML有两种写法: 1) <delete><id>1</id></delete> <commit/> 2) < ...
- Hadoop学习18--yarn配置篇-基本配置节点
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <va ...