All Projects → PassByYou888 → Zserver4d

PassByYou888 / Zserver4d

Licence: gpl-3.0
ZServer4D 是一套从商业项目剥离而出的云服务器中间件,可以承载百万级的分布式负载服务,并且支持IoT及内网穿透

Programming Languages

pascal
1382 projects
delphi
115 projects

Projects that are alternatives of or similar to Zserver4d

Zeus
A high performance, cross-platform Internet Communication Engine. Developed with native socket API. Aim at handling millions of concurrent connections.
Stars: ✭ 30 (-84.92%)
Mutual labels:  server, tcp, socket, epoll, client
Simplenet
An easy-to-use, event-driven, asynchronous network application framework compiled with Java 11.
Stars: ✭ 164 (-17.59%)
Mutual labels:  server, network, tcp, client
Clientserverproject
一个C-S模版,该模版由三部分的程序组成,一个服务端运行的程序,一个客户端运行的程序,还有一个公共的组件,实现了基础的账户管理功能,版本控制,软件升级,公告管理,消息群发,共享文件上传下载,批量文件传送功能。具体的操作方法见演示就行。本项目的一个目标是:提供一个基础的中小型系统的C-S框架,客户端有三种模式,无缝集成访问,winform版本,wpf版本,asp.net mvc版本,方便企业进行中小型系统的二次开发和个人学习。同时网络组件方便的支持读写三菱和西门子PLC的数据,详细见Readme
Stars: ✭ 873 (+338.69%)
Mutual labels:  server, network, socket, client
Tinytcpserver
A small tcp server working under Mono or .NET (4.0) and provides hooks for handling data exchange with clients (works under mono and .net). Behaviour/protocol/reaction could be specified via custom C# script.
Stars: ✭ 14 (-92.96%)
Mutual labels:  server, network, tcp, socket
Networksocket
NetworkSocket是一个以中间件(middleware)扩展通讯协议,以插件(plug)扩展服务器功能的支持SSL安全传输的通讯框架;目前支持http、websocket、fast、flex策略与silverlight策略协议。
Stars: ✭ 435 (+118.59%)
Mutual labels:  server, tcp, socket, client
Jstp
Fast RPC for browser and Node.js based on TCP, WebSocket, and MDSF
Stars: ✭ 132 (-33.67%)
Mutual labels:  server, tcp, socket, client
Hp Socket
High Performance TCP/UDP/HTTP Communication Component
Stars: ✭ 4,420 (+2121.11%)
Mutual labels:  network, tcp, socket, epoll
Ether.network
https://github.com/Eastrall/Sylver
Stars: ✭ 147 (-26.13%)
Mutual labels:  server, network, socket, client
Socket
Non-blocking socket and TLS functionality for PHP based on Amp.
Stars: ✭ 122 (-38.69%)
Mutual labels:  server, tcp, socket, client
Deta cache
缓存cache服务器
Stars: ✭ 106 (-46.73%)
Mutual labels:  server, network, tcp, socket
Oksocket
An blocking socket client for Android applications.
Stars: ✭ 2,359 (+1085.43%)
Mutual labels:  server, tcp, socket, client
Simplenetwork
simple TCP server / client C++ linux socket
Stars: ✭ 225 (+13.07%)
Mutual labels:  server, tcp, socket, client
Bizsocket
异步socket,对一些业务场景做了支持
Stars: ✭ 469 (+135.68%)
Mutual labels:  tcp, socket, client
Qtswissarmyknife
QSAK (Qt Swiss Army Knife) is a multi-functional, cross-platform debugging tool based on Qt.
Stars: ✭ 196 (-1.51%)
Mutual labels:  server, tcp, client
Node Minecraft Protocol
Parse and serialize minecraft packets, plus authentication and encryption.
Stars: ✭ 697 (+250.25%)
Mutual labels:  server, network, client
Netcat
💻 Netcat client and server modules written in pure Javascript for Node.js.
Stars: ✭ 315 (+58.29%)
Mutual labels:  tcp, socket, client
Emodbus
Modbus library for both RTU and TCP protocols. Primarily developed on and for ESP32 MCUs.
Stars: ✭ 29 (-85.43%)
Mutual labels:  server, tcp, client
Go Raknet
An idiomatic Go library implementing a basic version of the RakNet protocol.
Stars: ✭ 40 (-79.9%)
Mutual labels:  server, network, client
Tiginx
Tiginx is a Shanzhai Nginx project , please buyao use it xian , if meet problem , I no fuze ...
Stars: ✭ 29 (-85.43%)
Mutual labels:  socket, tcp, epoll
Hisocket
It is a lightweight client socket solution, you can used it in C# project or Unity3d
Stars: ✭ 275 (+38.19%)
Mutual labels:  network, tcp, socket

介绍

ZSERVER4D是一套高级通讯系统的地基平台,它偏向于开发工艺和多平台支持

功能

支持运行平台Android,IOS,Win32/64,Linux,OSX,物联网IOT(任意版本的linux均能支持,包括树莓1-3代,香橙,高通,三星,小序列cpu mips linux)

支持编译器:FPC3.0.4以及DelphiXE10.2和以后的版本

并行计算支持HPC服务器,并行深度参数服务器可配置

良好支持轻量云主机,腾讯云,阿里云,亚马逊云,均有数千台使用ZServer4D的服务器在运行中(2019一季度状态)

支持内置的Pascal语系的内网穿透稳定核心库XNat(直接内核支持,非外部支持)

支持基于FRP的内网穿透(外部shell方式支持),在公司或家里自己架设宅服 宅服架设说明

ZServer4D的前后台均支持苹果要求的IPV6审核条件,支持AAAA,A记录秒切,支持所有IPV6的云主机

内置高级加密系统,一万在线客户端会有一万把密钥,并且能动态定时更换密钥(请参考ZServer4D的附属开源项目 https://github.com/PassByYou888/CoreCipher

支持去中心化网络群集,支持去中心化网络群集一键对接

内置抗量子密码支持 https://en.wikipedia.org/wiki/SHA-3

支持了5大美国国家标准技术研究所(NIST)高级加密标准算法

支持5G万兆以太: 需要先升级服务器的CPU和内存,zServer内置高速CompleteBuffer,可以让后台平滑过渡至万兆以太,音频+视频+图片+文件均可使用CompleteBuffer

架构设计可以轻松实现IP池和入口网络秒切,非常利于在国内商业环境中防止对手DDos攻击

全面支持Linux服务器开发(fpc方向)

内置NoSQL并行化内核,良好支持大数据,良好支持聚类分析,支持分布式数据库负载,支持分布式数据查询结果汇集(NoSQL技术体系从11月初开始一直处于整理中,工程较大,可能短期不能完成,但是未来会以开源形式为Delphi国内带来前沿的数据库支持体系)

开发平台支持

  • Delphi及IDE要求:Delphi Rad studio XE10.3.1 or Last
  • FPC编译器支持:FPC3.0.4 or last,可参看本项目随附的IOT入手指南将FPC升级至github最新的版本
  • CodeTyphon 6.0 or last(尽量使用Online更新到最新的Cross工具链+相关库)

平台支持,test with Delphi 10.3 update 2 and FPC 3.0.4

  • Windows: delphi-CrossSocket(C/S OK), delphi-DIOCP(C/S OK), delphi-ICS(C/S OK), delphi-Indy(C/S OK),delphi+fpc Synapse(C/S OK)
  • Android:Indy(C/S OK), CrossSocket(Only Client)
  • IOS Device: Indy(C/S OK), CrossSocket(Only Client)
  • IOS Simulaor: n/a
  • OSX: Indy(C/S OK),ICS(未测试), CrossSocket(C/S OK)
  • Ubuntu16.04 x64 server: Indy(C/S OK), CrossSocket(C/S OK)
  • Ubuntu18.04 x86+x64 Desktop:only fpc3.0.4 Synapse(C/S OK)
  • Ubuntu18.04 x86+x64 Server:only fpc3.0.4 Synapse(C/S OK)
  • Ubuntu18.04 arm32+arm neon Server:only fpc3.0.4 Synapse(C/S OK)
  • Ubuntu18.04 arm32+arm neon desktop:only fpc3.0.4 compile ok,no test on run.
  • Ubuntu16.04 Mate arm32 desktop:only fpc3.0.4 compile ok, test passed
  • Raspberry Pi 3 Debian linux armv7 desktop,only fpc 3.0.4,test passed.
  • wince(arm eabi hard flaot),windows 10 IOT,only fpc 3.3.1,test passed.

CPU架构支持,test with Delphi 10.3 update 2 and FPC 3.0.4

  • MIPS(fpc-little endian), soft float, test pass on QEMU
  • intel X86(fpc-x86), soft float
  • intel X86(delphi+fpc), hard float,80386,PENTIUM,PENTIUM2,PENTIUM3,PENTIUM4,PENTIUMM,COREI,COREAVX,COREAVX2
  • intel X64(fpc-x86_64), soft float
  • intel X64(delphi+fpc), hard float,ATHLON64,COREI,COREAVX,COREAVX2
  • ARM(fpc-arm32-eabi,soft float):ARMV3,ARMV4,ARMV4T,ARMV5,ARMV5T,ARMV5TE,ARMV5TEJ
  • ARM(fpc-arm32-eabi,hard float):ARMV6,ARMV6K,ARMV6T2,ARMV6Z,ARMV6M,ARMV7,ARMV7A,ARMV7R,ARMV7M,ARMV7EM
  • ARM(fpc-arm64-eabi,hard float):ARMV8,aarch64

文档

必读:

编译指南

IOT完全攻略

内网穿透:

关于XNAT内网穿透库

宅服架设(FRP外壳支持)

内核:

zDefine过程定义详解

BigStream机制详解

多媒体通讯CompleteBuffer

BatchStream机制详解

HPC服务器的工作机制详解

延迟反馈机制详解

序列化的命令队列机制详解

组合技术:

基于序列包的断线重连系统StableIO

Zserver中的序列包机制详解

组合技术:

双通道机制详解

p2pVM隧道技术

p2pVM第二篇机理说明

必读:

部署Ubuntu服务器的开发环境(delphi方向)

Linux桌面开发指南(fpc方向)

在各开源项目中,为什么DisposeObject会比Free使用频率更高

问答:

解疑:为什么通过网络传任何文件都要验证

解疑:为什么ZServer4D不能在线程中使用

ZDB:

使用ZDB:1.认识ZDB

使用ZDB:2.查询工作原理

使用ZDB:3.数据策略

其它

双通道多线下载技术

云调度服务器用法详解

百度翻译服务后台(支持Ubuntu16.04LTS服务器)

百度翻译服务API(支持Ubuntu16.04LTS服务器)

云服务器框架 怎样开发基于ZS的底层通讯IO接口 console模式的后台程序开发

CodeTyphon多架构及多平台开发陷阱

在Lazarus或则CodeTyphon编译时出现缺失mtprocs库的解决办法

日常问题

库说明

通讯接口支持(开发平台需求 Delphi Rad studio 10.2或则更高版本,低版本不支持)

1.indy 阻塞模式的通讯组件,已在ZServer4D内部集成(客户端兼容性好,服务器质量差强人意)

(open source) http://www.indyproject.org/

2.CrossSocket 异步式通讯组件,已在ZServer4D内部集成(服务器,客户端两边的质量都极好)

(open source) https://github.com/winddriver/Delphi-Cross-Socket

3.ICS异步式通讯组件,已在ZServer4D内部集成(质量很好)

(open source) http://www.overbyte.be

4.DIOCP 国人所开发的稳定DIOCP通讯库(服务器端的质量极好)

(Open source) https://github.com/ymofen/diocp-v5

通讯接口支持(FreePascal 3.0.4 or last with Lazarus,低版本不支持)

1.synapse4(open source) 已经在ZServer4D内部集成,主要支持fpc,同时也兼容delphi(客户端的兼容性好,服务器端质量很好)

synapse是支持ssl的优秀开源项目

在ZServer4D中使用Synapse的最大连接数被限制为100.

关于5G后台:万兆以太

万兆以太构建多使用CompleteBuffer机制即可,该机制可以适应未来5G的后台场景,视频+图片+大文件,均可平滑过度至5G,无需改动

关于物联网IoT平台

ZServer4D对IoT平台的开发要求必须使用FPC编译器,ZServer4D对物联网的支持的标准系统包含一切Linux系统,要求最低FPC编译器版本为3.0.4(需要和它对应的RT内核库)

关于IoT平台的开发测试机:本文提及到的IOT开发板都可以通过网购获取,自己动手diy Linux需要一定的耐心,懒人建议使用CodeTyphon,或则直接apt安装内置的fpc+Lazarus

关于处理机架构和大小端字节序

早期的PPC处理器架构都是大端字节序,这也造成了,早期的网络通讯标准,都是大端,它一直在影响我们使用。但是后来,到现在,大端字节序已经慢慢消失,主流的Intel处理器架构,包括ARM,X86,现在都采用了小端字节序。因此,在ZServer中,所有的二进制收发,都是以小端字节序工作的。假如你在后台需要处理大端字节序,使用外部自定义协议模式即可。

大端字节序的典型场景:比如在Indy的通讯接口中,我们发送Integer时,如果打开转换参数,它会被转换成大端字节序。

关于内存泄漏

ZServer4D内置的服务器有:Indy, ICS, CrossSocket, DIOCP, Synapse所有的服务器均无内存泄漏

ZServer4D内置的客户端接口,某些库采用的是用完抛弃的设计方式,这是针对应用程序使用的客户端库,并不是后台使用,这会有少量内存泄漏,它们是:indy,DIOCP(客户端)

有内存泄漏行为的客户端接口

  • TCommunicationFramework_Client_Indy,用完抛弃
  • TCommunicationFramework_Client_DIOCP,用完抛弃

无内存泄漏行为的安全客户端

  • TCommunicationFramework_Client_ICS,安全回收,无泄漏
  • TCommunicationFramework_Client_CrossSocket,安全回收,无泄漏
  • TCommunicationFramework_Client_Synapse,安全回收,无泄漏

在ZServer4D中所捆绑的类,包括编解码,链表,数据库,均无内存泄漏

关于压力测试

必须先通过注册表开放windows的socket限制,然后再用PerformanceServer+PerformanceClient进行测试

压力测试如果链接超过6万,Windows系统会自动关闭侦听端口,具体原因不详,压测请尽量保持在6万以内,超过6万服务器侦听端口会自动关闭,只需要将服务器重开一次即可

关于切入和使用

ZServer4D是系统化的生产工艺地基,它并不像VCL那样傻瓜,可以拿来就用,你需要自行动手进行需求的提炼,简单来说,你必须自己动手封装,然后再使用。ZServer4D有丰富Demo和文档提供技术参考。

注意:2020/12月期间项目繁多,我在项目开发中使用10.3.3在ARM平台ARC会自动释放我的变量,调试一天无解。如果使用ZS开发手机,请换10.4或则以后的版本。开发Win32/Linux可以继续使用现有工具

在linux使用fpc时需要外挂一个MM库,jemalloc/tcmalloc均可,自行编译接口

最后更新日志

全面支持Radstudio10.4.2

  • 修复p2pVM主循环问题
  • 内核新增OrderStrtuct以支持ThreadPos
  • 全面支持10.4.2

小改动

  • 修复在P2PVM触发ConnectionDone事件中使用阻塞方式通讯等不到反馈的问题,感谢qq274384409

未改动ZS的主线框架,对原有服务器程序无影响,如果手上的项目正在使用ZS,建议使用本次更新

  • 新增支持自动化的文件断点续传,包括上传,下载,注意:自动化断点支持只能适用于双通道服务框架
  • 优化了文件MD5效验码问题:服务器在获取MD5效验码时,如果使用hdd会出现卡io的情况,现在是一次性的,系统会自动cache文件md5,不再会卡IO
  • 新增了一个开源项目,以文件传输为主 NetFileService
  • 优化automatedP2PVM框架,更加全自动化
  • 优化custom protocol支持部分,已在商业项目成功对接 c++/c/java/oc/swift/py 这些项目涵盖物联网、移动端、macos桌面端
  • 按商业项目等级优化了crosssocket后台接口,目标是绝不让它出错,哪怕百万分之一的出错几率
  • 近期ZS结合Z-AI的应用刚经历过几家创业公司和上市产品洗礼,ZS表现稳定

更多更新日志

注意

REST,BAAS等等单项式的HTTP服务请自行在服务器开发和集成,ZServer4D不提供外部http支持

如果你在使用ZServer4D,并且对开发有疑问,请加群去寻找答案(请不要直接联系作者)

qq群490269542

支持ZServer4D的后续开发 支付宝转账

不转帐也没事,遇上问题及时反馈一下.你们都是我的用户:〉

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].