Delphi各种Socket组件的模式和模型
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的模型的服务端也不错。
By steven
2014-2-1
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/ ...
随机推荐
- React开发调试工具--react-developer-tools
1. 首先,下载react-developer-tools开发调试工具插件. 因为谷歌插件下载需要FQ,这里提供一个本地资源:https://www.crx4chrome.com/crx/3068/ ...
- 简单的实现微信获取openid
微信公众平台获取openid在公众号的开发中有很多用途,前段时间为实现用户使用公众号在登录一次以后可以免密登陆而使用了openid.开发过程中遇到了一些问题,在这里向需要且还没有获取到openid的米 ...
- Realtime Rendering 1.1
[Realtime Rendering 1.1] 1.A linear transform is one that preserves vector addition and scalar multi ...
- js获取当前网页header头部信息
思路,通过ajax重新请求当前页面,用getAllResponseHeaders方法获取: var req = new XMLHttpRequest();req.open('GET', documen ...
- phpStudy安装教程
1.在phpStudy官网下载安装包(http://phpstudy.php.cn/)2.解压安装后,若提示没有“VC9.VC11.VC14运行库,注意是X86 32位”,则在phpStudy下载对应 ...
- 199. Binary Tree Right Side View (Tree, Stack)
Given a binary tree, imagine yourself standing on the right side of it, return the values of the nod ...
- 【模型】Toon Dragon
下载地址:点击下载
- C# 页面向controller中跳转匹配方法的时候,当controller中有两个重载方法时候,不发生跳转
在ajax中的URL跳向controller一个方法时候,controller中有两个重载的方法,ajax不发生跳转,当删除另外一个方法之后,正常跳转. 不知道,是我自己写的有问题,还是control ...
- vue 打包
1.assetsPublicPath路径改为‘./’(两处) 2.cmd运行 cnpm run build 3.生成的dist文件即可本地访问
- [剑指Offer]47-礼物的最大价值(DP)
题目描述 在一个m*n的棋盘每个格有一个礼物,每个礼物有一定价值(>0).从棋盘左上角到右下角,只能向下或向右走,问能拿到的礼物最大价值. 解题思路 dp. 可将二维数组版优化为一维数组版. 代 ...