All Projects → hujianzhe → server-framework

hujianzhe / server-framework

Licence: other
纯C的分布式服务器框架通用模板,跨平台,模块动态加载,tcp/可靠UDP,协程RPC,日志,集群建立

Programming Languages

c
50402 projects - #5 most used programming language
Makefile
30231 projects
shell
77523 projects

Projects that are alternatives of or similar to server-framework

Co
Art of C++. Flag, logging, unit-test, json, go-style coroutine and more.
Stars: ✭ 2,264 (+9333.33%)
Mutual labels:  tcp, coroutines, rpc
RRQMSocket
TouchSocket是.Net(包括 C# 、VB.Net、F#)的一个整合性的、超轻量级的网络通信框架。包含了 tcp、udp、ssl、http、websocket、rpc、jsonrpc、webapi、xmlrpc等一系列的通信模块。一键式解决 TCP 黏分包问题,udp大数据包分片组合问题等。使用协议模板,可快速实现「固定包头」、「固定长度」、「区间字符」等一系列的数据报文解析。
Stars: ✭ 286 (+1091.67%)
Mutual labels:  tcp, udp, rpc
Swoft Im
基于swoft-cloud的微服务架构,最小化拆分粒度,PHP7、多进程、协程、异步任务、mysql连接池、redi连接池、rpc连接池、服务治理、服务注册与发现、Aop切面、全注解
Stars: ✭ 189 (+687.5%)
Mutual labels:  tcp, coroutines, rpc
twjitm-core
采用Netty信息加载实现长连接实时通讯系统,客户端可以值任何场景,支持实时http通讯、webSocket通讯、tcp协议通讯、和udp协议通讯、广播协议等 通过http协议,rpc协议。 采用自定义网络数据包结构, 实现自定义网络栈。
Stars: ✭ 98 (+308.33%)
Mutual labels:  tcp, udp, rpc
Asio2
Header only c++ network library, based on asio,support tcp,udp,http,websocket,rpc,ssl,icmp,serial_port.
Stars: ✭ 202 (+741.67%)
Mutual labels:  tcp, udp, rpc
rpc
RPC-like client-service implementation over messaging queue
Stars: ✭ 26 (+8.33%)
Mutual labels:  service, rpc
ronin-support
A support library for Ronin. Like activesupport, but for hacking!
Stars: ✭ 23 (-4.17%)
Mutual labels:  tcp, udp
net-protocol
golang模拟内核协议栈 实现链路层、网络层、传输层、应用层 用户态协议栈 ,基于虚拟网卡TUN/TAP
Stars: ✭ 129 (+437.5%)
Mutual labels:  tcp, udp
SuperSimpleTcp
Simple wrapper for TCP client and server in C# with SSL support
Stars: ✭ 263 (+995.83%)
Mutual labels:  tcp, rpc
gnb udp over tcp
gnb_udp_over_tcp 是一个为GNB开发的通过tcp链路中转UDP分组转发的服务
Stars: ✭ 32 (+33.33%)
Mutual labels:  tcp, udp
masscanned
Let's be scanned. A low-interaction honeypot focused on network scanners and bots. It integrates very well with IVRE to build a self-hosted alternative to GreyNoise.
Stars: ✭ 50 (+108.33%)
Mutual labels:  tcp, udp
node-dns
🌐 DNS Server and Client Implementation in Pure JavaScript with no dependencies.
Stars: ✭ 390 (+1525%)
Mutual labels:  tcp, udp
network
exomia/network is a wrapper library around System.Socket for easy and fast TCP/UDP client & server communication.
Stars: ✭ 18 (-25%)
Mutual labels:  tcp, udp
protocol
Easy protocol definitions in Rust
Stars: ✭ 151 (+529.17%)
Mutual labels:  tcp, udp
DDoS-Script
A script written in perl for ddos ​​with automatic detection of open and vulnerable port that gives up to 1.5 gb packages / s
Stars: ✭ 30 (+25%)
Mutual labels:  tcp, udp
Swiddler
TCP/UDP debugging tool.
Stars: ✭ 56 (+133.33%)
Mutual labels:  tcp, udp
SACK
System Abstraction Component Kit
Stars: ✭ 18 (-25%)
Mutual labels:  tcp, udp
KingNetwork
KingNetwork is an open source library to facilitate the creation and communication of clients and servers via TCP, UDP, WebSocket and RUDP sockets.
Stars: ✭ 78 (+225%)
Mutual labels:  tcp, udp
hev-socks5-tproxy
A simple, lightweight socks5 transparent proxy for Linux. (IPv4/IPv6/TCP/UDP over TCP)
Stars: ✭ 209 (+770.83%)
Mutual labels:  tcp, udp
reverse-tunnel
Reverse tunnel TCP and UDP
Stars: ✭ 100 (+316.67%)
Mutual labels:  tcp, udp

server framework

跨平台底层库 https://github.com/hujianzhe/util, 下载后置于BootServer目录下

简介:本代码只实现节点启动自举与集群节点之间的消息联动,不包含任何业务代码
模块内部由多个线程处理io,另有一个工作线程处理内部消息和收到的网络消息并派遣到你的业务代码逻辑中
各节点通过读取配置文件加载或更新你自定义的各种服务集群的节点信息
支持按照[一致性hash环,hash取余数,依次轮询,随机,权重值]选取目标集群节点

不太常见的一些特性:
1、纯C编写实现,去除C++干扰,跨平台,不依赖任何第三方框架
2、支持异步回调、协程、消息3种RPC调度机制
3、网络通信支持TCP和可靠UDP

TODO:
1、一个好的说明文档,实在没时间写
2、对脚本语言编写业务逻辑提供支持
3、有状态服务节点的扩容与缩容

模块介绍:
1、BootServer:服务节点启动的必备初始化和操作
2、ServiceTemplate:服务节点代码模板,用来写你的业务逻辑
3、SoTestClient,SoTestServer:测试节点,用于测试功能

编译:
windows直接VS编译 linux下使用make debug 或 make release

启动:
编辑好服务节点启动需要的配置文件(具体格式参看附带的配置文件模板),给每个节点一个配置文件和唯一id,日志标识名,IP和端口号
windows直接VS打开,工程配置好启动参数 <配置文件>
linux编译后,sh run.sh <服务进程> <配置文件>

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].