Delphi跨平台Socket通讯库

(2017-05-18 14:18:50)

标签:

delphi

kbmmw

盒子中的souledge大侠发布了新的Socket库,以下为原文:我之前写过一个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发行版本尚未测试.

盒子地址

分享:

喜欢

0

赠金笔

加载中,请稍候......

评论加载中,请稍候...

发评论

登录名: 密码: 找回密码 注册记住登录状态

昵   称:

评论并转载此博文

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

java delphi socket_Delphi跨平台Socket通讯库相关推荐

  1. Socket网络通讯开发总结之:Java 与 C进行Socket通讯

    先交待一下业务应用背景: 服务端:移动交费系统:基于C语言的Unix系统 客户端:增值服务系统:基于Java的软件系统 通迅协议:采用TCP/IP协议,使用TCP以异步方式接入 数据传输:基于Sock ...

  2. java c 网络_Socket网络通讯开发总结之:Java 与 C进行Socket通讯(转)

    先交待一下业务应用背景: 服务端:移动交费系统:基于C语言的Unix系统 客户端:增值服务系统:基于Java的软件系统 通迅协议:采用TCP/IP协议,使用TCP以异步方式接入 数据传输:基于Sock ...

  3. Java与C++Socket通讯注意

    2019独角兽企业重金招聘Python工程师标准>>> c++与java进行socket通信时注意事项 因为java发送的都是网络字节序(big-endium),而c++是主机字节序 ...

  4. java与 C++ 之间进行 SOCKET 通讯要点简要解析

    Endian定义: 在计算机系统体系结构中用来描述在多字节数中各个字节的存储顺序. big-endian也称高位在前.大端在前.是 计算机体系结构中一种描述多字节存储顺序的术语,在这种机制中最重要字节 ...

  5. android与PC,C#与Java 利用protobuf 进行无障碍通讯【Socket】

    protobuf 是什么? Protocol buffers是一种编码方法构造的一种有效而可扩展的格式的数据. 谷歌使用其内部几乎RPC协议和文件格式的所有协议缓冲区. 参考文档 http://cod ...

  6. as3 java 交互_求大佬用 Java 实现这段 AS3 的 socket 通讯功能

    最近在分析一个直播网站,初步分析后发现是在 swf 中用 socket 通讯返回的 flv 地址. 其中 Actionscript socket 通讯的关键代码如下: this._socket = n ...

  7. socket java 服务器端_Java 简单的Socket通讯的服务器端实现

    最近学安卓开发,看到书上这个Socket通讯的实例,按照书上打的时候客户端一直连接不上,可能是网络问题或者虚拟机连接问题,所以就用控制台实现的客户端,这里是服务器端的.话不多说,直接贴代码 impor ...

  8. 跨平台(windows+linux)的线程辅助程序,跨平台(Windows+Linux)的Socket通讯程序(二)—结构...

    上一篇"跨平台(Windows+Linux)的Socket通讯程序"给出了Socket通讯底层的一些函数的包装方法/类,同时屏蔽了操作系统(Windows/Linux)的不同. 上 ...

  9. java socket通讯_Java socket通讯实现过程及问题解决

    这篇文章主要介绍了Java socket通讯实现过程及问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 本来是打算验证java socket是 ...

  10. java socket 卡住_Java socket通讯实现过程及问题解决

    这篇文章主要介绍了java socket通讯实现过程及问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 本来是打算验证java socket是 ...

最新文章

  1. SAP WM Picking Area的使用
  2. 网鼎杯2020 朱雀部分writeup
  3. MacOS AElf Boilerplate开发体验
  4. SOAMANAGER配置后无法登录问题
  5. boost::spirit模块将 QString 数据类型用作 Qi 属性的测试程序
  6. Java NIO之Selector
  7. 腾讯翻译君在线翻译怎么翻译整个文件_藏语怎么翻译成中文?这两方法非常好用...
  8. 拿来就能用!用爬虫秒抢到孩子心仪的幼儿园 | CSDN 博文精选
  9. 几何畸变图像恢复 openCV3 - 数字图像处理作业3
  10. 【Matlab】使用龙格库塔方法求积分
  11. 前端中用手机拍照压缩,上传图片压缩
  12. Linux如何打开U盘
  13. Matlab 仿真——直流电机速度控制(3)PID控制器设计
  14. win7重装系统后计算机打不开,win7系统重装后进不了系统怎么办
  15. 银行软件测试面试题目总结,希望可以帮到你
  16. selenium+requests实现自动连接校园网并验证!
  17. python的爱心曲线公式_六行python代码的爱心曲线详解
  18. 集成电路模拟版图入门-版图基础学习笔记(二)
  19. 于飞SEO:seo优化如何正确的布局关键词?
  20. 华维单片机编程:仿真软件适合单片机初学者吗

热门文章

  1. 在线富文本编辑器-基于Web的HTML编辑器大全(二)
  2. Renderdoc截帧
  3. DFS走迷宫(懒猫老师C++完整版)
  4. creo扫描选择多条链作为轨迹_跟阿铭学Creo产品设计,乌比莫斯之环框架模型设计你掌握了吗?...
  5. 【质量管理】SMT电子厂超实用的六西格玛(6σ)质量管理工具一览表!
  6. Maven学习之路(五)maven的灵活构建--属性、profile和资源过滤
  7. 中国金属包装容器制造行业竞争格局分析与投资规划深度研究报告2022-2028年版
  8. 小马激活报错:已停止工作
  9. 如何从Oracle官网上下载JDK
  10. 怎样在表格中选出同一类_怎样在excel中筛选出带同样文字的