|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
|
2017/5/18 13:15:09 |
标题: |
Delphi 跨平台 Socket 通讯库 |
浏览:12458 |
|
加入我的收藏 |
楼主: |
我之前写过一个iocp的框架,放到googlecode上了。
由于当时的delphi版本尚无法跨平台,所以该框架只能运行在Windows下。
现在Delphi的跨平台编译器基本已经成熟了,主流的操作系统基本都已支持,这是一个很好的契机,于是催生了我新的通讯框架的诞生,这个新的通讯框架就是Delphi Cross Socket。
期间有很多朋友通过QQ或邮箱联系过我,希望我尽快发布新的框架源码,不过工作一直很忙,我也只能用闲暇时间整理,直到今天终于整理出了一份初稿,放到github上了。
希望能帮助到需要的人,也希望Delphi越来越好!
https://github.com/winddriver/Delphi-Cross-Socket
Delphi 跨平台 Socket 通讯库
作者: WiNDDRiVER(soulawing@gmail.com)
特性
针对不同平台使用不同的IO模型:
IOCP Windows
KQUEUE FreeBSD(MacOSX, iOS...)
EPOLL Linux(Linux, Android...)
支持极高的并发
Windows 能跑10万以上的并发数, 需要修改注册表调整默认的最大端口数
Mac 做了初步测试, 测试环境为虚拟机中的 OSX 10.9.5, 即便修改了系统的句柄数限制, 最多也只能打开32000多个并发连接, 或许 OSX Server 版能支持更高的并发吧 同时支持IPv4、IPv6
零内存拷贝
已通过测试
Windows OSX iOS Android Linux
建议开发环境
要发挥跨平台的完整功能请使用Delphi 10.2 Tokyo及以上的版本 最低要求支持泛型和匿名函数的Delphi版本, 具体是从哪个版本开始支持泛型和匿名函数的我也不是太清楚
已知问题
iOS做了初步测试, 连接数超过80以后还有些问题, 不过通常iOS下的应用谁会去开好几十 连接呢?
Android初步测试, 并发到450之后就无法增加了, 可能受限于系统的文件句柄数设置.
Ubuntu桌面版下似乎有内存泄漏 但是追查不到到底是哪部分代码造成的, 甚至无法确定是delphi内置的rtl库还是我所写的代码引起的. 通过 LeakCheck 库能粗略看出引起内存泄漏的是一个 AnsiString 变量, 并不能定位到具体的代码. 但是我自己的代码里根本没有任何地方定义或者使用过类似的变量, 其它Linux发行版本尚未测试.
----------------------------------------------
- |
作者: |
|
2017/5/18 13:18:43 |
1楼: |
强顶。
建议字符串一律使用 TByte 代替s 如果传 String ,请使用 string 类型,并要求传入一个 TEncoding 作为转换为 TBytes 的工具。 这样,就不用担心字符串了。
----------------------------------------------
(C)(P)Flying Wang
|
作者: |
|
2017/5/18 14:06:47 |
2楼: |
虽然我不会用,但这个我要顶!!!!!!!!!!
----------------------------------------------
-
|
作者: |
bdl1 (bdl1) |
▲▲▲▲▲ |
-
|
普通会员 |
|
2017/5/18 14:16:32 |
3楼: |
向楼主致敬!
----------------------------------------------
-我的博客
|
作者: |
csm55 (鹰扬天下) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2017/5/18 14:16:39 |
3楼: |
哇,太强了!!!
----------------------------------------------
——做人,为什么要过于执著?! ——做人,干嘛为难自己?! ——做人,先要相信自己。——做人,依靠自己!——做人,量力而行。——做人,记得反省自己。——做人,何妨放手一搏。——做人,要活在当下。
|
作者: |
|
2017/5/18 14:37:59 |
4楼: |
强,delphi界,就缺少这样的大神级产品
----------------------------------------------
-
|
作者: |
|
2017/5/18 14:42:19 |
5楼: |
强,delphi第一个开源跨全平台库
----------------------------------------------
-
|
作者: |
go_on (go_on) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2017/5/18 16:00:48 |
6楼: |
强,支持先
----------------------------------------------
-
|
作者: |
|
2017/5/18 16:41:26 |
7楼: |
碉堡了! 支持楼主大虾。。。
----------------------------------------------
kittyapp
|
作者: |
akay (akay) |
★☆☆☆☆ |
-
|
普通会员 |
|
2017/5/18 16:43:38 |
7楼: |
没来得及看,通讯还是要用TByte,全平台都统一了。
----------------------------------------------
-
|
作者: |
|
2017/5/18 17:24:29 |
8楼: |
果断给一个Star
----------------------------------------------
只有偏执狂才能生存!
|
作者: |
|
2017/5/18 18:20:20 |
9楼: |
赞,等了多年终于等到了!感谢楼主分享
----------------------------------------------
虽千万人吾往矣!
|
作者: |
|
2017/5/18 18:21:53 |
9楼: |
感谢大神分享 顶一个!
----------------------------------------------
-
|
作者: |
|
2017/5/18 20:47:04 |
10楼: |
支持!!!!
----------------------------------------------
-delphi新资讯站 http://www.delphigear.cn
|
作者: |
|
2017/5/18 22:29:15 |
11楼: |
支持楼主,楼主的IOCP为何首次连接10000个很快,断开所有连接到0后,再批量连接10000个,后面连接数都是以100每秒的增加,为何首次10000个连接的贼快啊
----------------------------------------------
-
|
作者: |
lsuper (lsuper) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2017/5/18 22:37:16 |
12楼: |
Star+1 ~
----------------------------------------------
-
|
作者: |
bdl1 (bdl1) |
▲▲▲▲▲ |
-
|
普通会员 |
|
2017/5/18 22:42:38 |
13楼: |
Star+1 ~
----------------------------------------------
-我的博客
|
作者: |
|
2017/5/18 23:38:05 |
14楼: |
Star+1 ~
----------------------------------------------
-
|
作者: |
|
2017/5/19 8:07:35 |
15楼: |
楼主强悍啊。
----------------------------------------------
-
|
作者: |
|
2017/5/19 8:51:31 |
16楼: |
楼主强悍
----------------------------------------------
-
|
作者: |
|
2017/5/19 8:52:55 |
17楼: |
哇,强大, 楼主厉害!
----------------------------------------------
樵夫的大马甲
|
作者: |
|
2017/5/19 10:20:29 |
18楼: |
linux运行没有问题。
此帖子包含附件:
大小:42.1K |
----------------------------------------------
-
|
作者: |
|
2017/5/19 10:30:30 |
18楼: |
高手
----------------------------------------------
-
|
作者: |
|
2017/5/19 11:06:51 |
19楼: |
支持
----------------------------------------------
-
|
作者: |
|
2017/5/19 13:19:00 |
20楼: |
支持啊,一直想找个这样的东西
----------------------------------------------
-
|
作者: |
|
2017/5/19 13:37:00 |
21楼: |
: 虽然我不会用,但这个我要顶!!!!!!!!!! ----------
----------------------------------------------
^_^
|
作者: |
|
2017/5/19 14:32:54 |
22楼: |
牛人,必须顶!
----------------------------------------------
-
|
作者: |
|
2017/5/19 14:38:01 |
23楼: |
太感谢了。
----------------------------------------------
|
作者: |
|
2017/5/19 15:45:15 |
24楼: |
这个linux程序,用什么编译的?
----------------------------------------------
-
|
作者: |
|
2017/5/19 15:54:05 |
25楼: |
这个linux程序,用什么编译的?
----------------------------------------------
-
|
作者: |
|
2017/5/19 16:08:58 |
26楼: |
牛人,好东西!
----------------------------------------------
-
|
作者: |
|
2017/5/19 16:54:52 |
27楼: |
@zj_mpy (nnnnn): http://bbs.2ccc.com/topic.asp?topicid=531534
----------------------------------------------
虽千万人吾往矣!
|
作者: |
|
2017/5/19 17:22:16 |
28楼: |
: 虽然我不会用,但这个我要顶!!!!!!!!!!
----------------------------------------------
-
|
作者: |
|
2017/5/19 17:28:55 |
29楼: |
支持!
----------------------------------------------
喜欢Delphi,关注Delphi,愿和广大爱好者交朋友。
|
作者: |
|
2017/5/20 11:14:50 |
30楼: |
大神
----------------------------------------------
-
|
作者: |
|
2017/5/20 11:22:47 |
31楼: |
高手,支持!
----------------------------------------------
-
|
作者: |
|
2017/5/20 12:34:57 |
32楼: |
支持下
----------------------------------------------
-
|
作者: |
|
2017/5/20 13:55:03 |
33楼: |
好东西!!
----------------------------------------------
-
|
作者: |
|
2017/5/20 14:20:05 |
34楼: |
牛
----------------------------------------------
-
|
作者: |
|
2017/5/20 18:10:39 |
35楼: |
厉害
----------------------------------------------
欢迎加入OrangeUI的app开发阵营:http://www.orangeui.cn/,联系QQ452330643
|
作者: |
|
2017/5/21 22:25:22 |
37楼: |
souledge,未来你来!开个群如何?
----------------------------------------------
不喧哗 自有声 心静 思远 志行千里
|
作者: |
|
2017/5/22 14:20:13 |
38楼: |
强烈支持楼主
----------------------------------------------
我和我追逐的梦,擦肩而过
|
作者: |
|
2017/5/22 15:44:04 |
39楼: |
是,像这个东西,在用电信息采集系统、配电网自动化系统、车辆培训系统、物流系统等领域很有用处,希望建个群
----------------------------------------------
-
|
作者: |
|
2017/5/22 16:07:05 |
40楼: |
没找到资源
----------------------------------------------
-
|
作者: |
blbz (冰力不足) |
★☆☆☆☆ |
-
|
禁用账号 |
|
2017/5/22 23:03:55 |
41楼: |
…… 被禁用帐号,帖子内容自动屏蔽! ……
----------------------------------------------
SPAM
|
作者: |
rlz (2ys) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2017/5/24 11:47:52 |
42楼: |
请作者联系一下,讨论几个技术点。QQ:7041779
----------------------------------------------
-
|
作者: |
|
2017/5/24 14:19:41 |
43楼: |
向楼主致敬!
----------------------------------------------
-
|
作者: |
|
2017/5/25 9:42:08 |
44楼: |
楼主,以前用过你在googlecode的DelphiIocp,并且提过几个Issue的Hezihang, 希望建立一个QQ群方便大家一起讨论。
----------------------------------------------
-
|
作者: |
|
2017/5/25 10:53:44 |
45楼: |
工作实在太忙,没时间去管理QQ群,我QQ都几乎没时间看。 有问题或者建议可以发邮件,或者直接提交到github。
----------------------------------------------
-
|
作者: |
|
2017/5/25 14:28:34 |
46楼: |
大神,你业余时间,也没有空吗,大家呼声这么高,尽量弄个QQ群,找几个志同道合的管理员就可以,花不了多少时间的
----------------------------------------------
-
|
作者: |
|
2017/5/25 17:30:35 |
47楼: |
建议有热心的大牛开个群,楼主加一下,当个荣誉管理员就行了。 有涉及到比较重大的问题,群主再出来处理一下就好,平时由大牛们来维护群就可以了。
@souledge @zhyhui2008 @board4all @rlz
----------------------------------------------
虽千万人吾往矣!
|
作者: |
|
2017/5/25 23:47:33 |
48楼: |
欢迎大家加入Delphi-Cross-Socket讨论QQ群:152678031
----------------------------------------------
-
|
作者: |
dunken (dunken) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2017/5/26 7:18:26 |
49楼: |
顶
----------------------------------------------
-
|
作者: |
|
2017/5/26 10:42:11 |
50楼: |
@board4all,入群验证改成“请输入作者的盒子账号”好些哈。
----------------------------------------------
虽千万人吾往矣!
|
作者: |
|
2017/5/26 12:15:09 |
51楼: |
大牛啊,下来学习一下,太感谢了。
----------------------------------------------
-
|
作者: |
zxf (ddo) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2017/5/27 16:01:58 |
52楼: |
厉害 顶
----------------------------------------------
-
|
作者: |
bdl1 (bdl1) |
▲▲▲▲▲ |
-
|
普通会员 |
|
2017/5/31 8:47:09 |
53楼: |
申请加群了。 bdl1
----------------------------------------------
-我的博客
|
作者: |
|
2017/6/1 10:21:23 |
54楼: |
QQ在大陸以外的地區無法順利申請,請問有沒有微信的群號?
----------------------------------------------
-
|
作者: |
|
2017/6/1 15:06:17 |
55楼: |
这个必须顶,我是做电力智能设备的,经常用数据互联互通!
----------------------------------------------
-
|
作者: |
bdl1 (bdl1) |
▲▲▲▲▲ |
-
|
普通会员 |
|
2017/6/5 9:52:28 |
56楼: |
发现在linux不支持并发,因此效率太慢,无法正常使用。
----------------------------------------------
-我的博客
|
作者: |
|
2017/6/5 10:03:07 |
57楼: |
顶楼主!!!支持楼主!!!
----------------------------------------------
Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!Delphi威武!千秋万代,一统江湖!我去WC吐一会儿去!
|
作者: |
|
2017/6/5 13:09:12 |
58楼: |
@bdl1 你确定?我在Linux下运行CrossHttpConsole,用ab -c 100000000 -n 10000 -k 跑过一亿次的测试,并发1万连接,除了内存泄漏的已知问题,没其它任何问题
----------------------------------------------
-
|
作者: |
|
2017/6/6 14:41:42 |
59楼: |
Net.Winsock2 来源于 Indy9, 不知和现在的Indy10相比,那个好?
----------------------------------------------
-
|
作者: |
|
2017/6/7 10:49:25 |
60楼: |
Winsock2只是相当于Windows Socket链接库的头文件而已,只要保证正确就行了,不管Indy9还是Indy10的都没区别
----------------------------------------------
-
|
作者: |
|
2017/12/26 9:34:28 |
61楼: |
不得不说,这是个非常好的东西,一直用iocp,最近转linux,用得上这个。个人非常支持楼主。 注册12年,第一贴支持楼主。
----------------------------------------------
-
|
作者: |
|
2017/12/26 10:31:11 |
62楼: |
支持一下楼主.
----------------------------------------------
-
|
作者: |
|
2017/12/26 10:49:48 |
62楼: |
感谢分享
----------------------------------------------
-
|
作者: |
|
2017/12/26 12:08:38 |
63楼: |
作者的编码风格非常好,看他的代码简直就是一种享受!
----------------------------------------------
虽千万人吾往矣!
|
作者: |
|
2017/12/26 13:07:24 |
64楼: |
给共享精神致敬
----------------------------------------------
-
|
作者: |
|
2017/12/26 17:08:05 |
65楼: |
支持
----------------------------------------------
-
|
作者: |
|
2017/12/26 18:30:14 |
66楼: |
这个必须支持下
----------------------------------------------
我的大全[5ddq.com],我的主页!
|
作者: |
|
2017/12/26 18:59:33 |
66楼: |
赞,LINUX下的最好,希望能找出bug
----------------------------------------------
-
|
作者: |
bdl1 (bdl1) |
▲▲▲▲▲ |
-
|
普通会员 |
|
2018/11/16 13:06:17 |
67楼: |
向楼上敬礼!
----------------------------------------------
-我的博客
|
作者: |
majx (skin) |
★☆☆☆☆ |
-
|
普通会员 |
|
2018/11/16 13:32:25 |
68楼: |
不是有个DIOCP吗?DIOCP与楼主这个相比怎么样呢?
----------------------------------------------
majx,QQ 613354940
|
作者: |
|
2018/11/17 18:24:30 |
69楼: |
Win上都是IOCP的,但是这个是跨平台的,DIOCP只能用于Windows。当然这个在其他平台上自然就不是IOCP了
----------------------------------------------
-
|
作者: |
|
2018/12/12 7:06:36 |
70楼: |
试了一下Demos 客户端一次发了个10M的包 服务器那边的触发多次OnReceived才收完这个个10M的完整包,谁有写好的组合包的函数给个用用?
----------------------------------------------
-
|
作者: |
|
2019/1/11 13:41:53 |
71楼: |
感谢大神
----------------------------------------------
我为人人为我
|
作者: |
jfhyn (贺兰之边) |
★☆☆☆☆ |
-
|
普通会员 |
|
2019/4/9 15:49:21 |
72楼: |
大神太神了
----------------------------------------------
-
|
作者: |
|
2019/12/24 15:19:07 |
73楼: |
感谢大神,大家都贡献一下自己DEMO吧,demo太少,userData不知怎么用!!!
----------------------------------------------
他们总是取笑失败者,以酷似智者;他们也总是为成功者喝采,以取得赏金。
|
作者: |
|
2019/12/24 16:52:25 |
74楼: |
佩服,很喜欢楼主这样优雅的代码,Ubuntu 18.04 运行没问题!
此帖子包含附件:
大小:62.1K |
----------------------------------------------
Delphi4Linux Delphi三层/FireDAC 技术群:734515869 http://www.cnblogs.com/rtcmw
|
作者: |
a5824 (Return) |
★☆☆☆☆ |
-
|
普通会员 |
|
2019/12/25 9:56:50 |
75楼: |
看了一下例子,对于HTTP这块,解析参数能不能不用正则,比同行的慢,还有指定路径里,我不想通过指定具体的参数名,就能拿到所有参数值,这样方便我遍历
----------------------------------------------
-
|
作者: |
|
2019/12/25 19:15:15 |
76楼: |
开源的,楼上可以自己改。
----------------------------------------------
中间件QQ群: 92449782 博客: http://www.cnblogs.com/hnxxcxg/
|
作者: |
|
2020/4/10 11:39:23 |
77楼: |
ubuntu 16.04编译不过
----------------------------------------------
-
|
作者: |
|
2020/4/13 16:38:23 |
78楼: |
Delphi 从 2009 版起开始支持泛型与匿名函数。
----------------------------------------------
欢迎使用CnPack IDE Wizards http://www.cnpack.org/
|
作者: |
|
2020/4/13 22:51:45 |
79楼: |
支持
----------------------------------------------
-
|
作者: |
blbz (冰力不足) |
★☆☆☆☆ |
-
|
禁用账号 |
|
2020/4/14 1:22:31 |
80楼: |
…… 被禁用帐号,帖子内容自动屏蔽! ……
----------------------------------------------
SPAM
|
作者: |
|
2020/4/16 3:52:21 |
81楼: |
楼主威武!
----------------------------------------------
-
|
作者: |
|
2023/7/17 15:41:05 |
82楼: |
支持
----------------------------------------------
-
|
作者: |
|
2023/7/18 0:40:14 |
83楼: |
顶,好人一生平安!
----------------------------------------------
-
|
作者: |
kwer (★★★★★) |
★☆☆☆☆ |
-
|
普通会员 |
|
2023/7/18 9:13:01 |
85楼: |
有没有好用的 TCP压力测试小工具?
----------------------------------------------
==========-==========-==========-==========-========== 多隆, 给我备一匹最快的马, 我有事要走先~~~ ==========-==========-==========-==========-==========
|
|