English Version | 中文版
基于 .NET Standard 2.0 的高性能 IOCP 网络通信框架,提供完整的网络应用解决方案。
SAEA.Socket 是一个 IOCP 高性能 sockets 网络框架,Src 中包含其使用场景,例如大文件传输、WebSocket 客户端和服务器、高性能消息队列、RPC、Redis 驱动、HTTP Server、MQTT、MVC、DNS、消息服务器等。
| 章节 | 内容 |
|---|---|
| ⚡ 30秒快速开始 | 最简单的上手方式 |
| 🧩 组件导航 | 选择合适的组件 |
| 📐 项目架构 | 整体架构设计 |
| ✨ 核心特性 | 主要功能亮点 |
| 📊 性能对比 | 与同类框架对比 |
| ❓ 常见问题 | FAQ 快速解答 |
| 🔗 资源链接 | 更多学习资源 |
dotnet add package SAEA.Sockets// 创建 TCP 服务器(仅需5行代码)
var server = SocketFactory.CreateServerSocket(
SocketOptionBuilder.Instance.SetSocket(SAEASocketType.Tcp).UseIocp().SetPort(39654).Build()
);
server.OnReceive += (id, data) => server.Send(id, data);
server.Start();根据你的需求选择对应组件:
| 你的需求 | 推荐组件 | 安装命令 |
|---|---|---|
| Web API 开发 | SAEA.MVC | dotnet add package SAEA.MVC |
| WebSocket 实时通信 | SAEA.WebSocket | dotnet add package SAEA.WebSocket |
| P2P 直连通信 | SAEA.P2P | dotnet add package SAEA.P2P |
| Redis 缓存操作 | SAEA.RedisSocket | dotnet add package SAEA.RedisSocket |
| 微服务 RPC | SAEA.RPC | dotnet add package SAEA.RPC |
| IoT 设备通信 | SAEA.MQTT | dotnet add package SAEA.MQTT |
| 文件传输 | SAEA.FileSocket | dotnet add package SAEA.FileSocket |
| 组件 | 功能 | NuGet | 中文文档 | 英文文档 | 适用场景 |
|---|---|---|---|---|---|
| 🔌 SAEA.Sockets | IOCP Socket 通信框架 | NuGet | 中文 | English | 游戏服务器、实时通信、IoT |
| 🔧 SAEA.Common | 通用工具类库 | NuGet | 中文 | English | 序列化、缓存、加密 |
| 组件 | 功能 | NuGet | 中文文档 | 英文文档 | 适用场景 |
|---|---|---|---|---|---|
| 🌐 SAEA.Http | HTTP 服务器 | NuGet | 中文 | English | RESTful API、静态文件服务 |
| 🎨 SAEA.MVC | MVC Web 框架 | NuGet | 中文 | English | Web 应用、API 服务 |
| 组件 | 功能 | NuGet | 中文文档 | 英文文档 | 适用场景 |
|---|---|---|---|---|---|
| 💬 SAEA.WebSocket | WebSocket 服务器/客户端 | NuGet | 中文 | English | 实时聊天、推送通知 |
| 🤖 SAEA.MQTT | MQTT 协议实现 | NuGet | 中文 | English | IoT 设备、智能家居 |
| 📨 SAEA.MessageSocket | 消息服务器 | NuGet | 中文 | English | 即时通讯、在线客服 |
| 组件 | 功能 | NuGet | 中文文档 | 英文文档 | 适用场景 |
|---|---|---|---|---|---|
| 🔗 SAEA.P2P | P2P 直连通信组件 | NuGet | 中文 | English | NAT 穿透、局域网发现、即时通讯、游戏对战 |
| 组件 | 功能 | NuGet | 中文文档 | 英文文档 | 适用场景 |
|---|---|---|---|---|---|
| 📦 SAEA.RedisSocket | Redis 客户端 | NuGet | 中文 | English | Redis 缓存、分布式锁 |
| 📁 SAEA.FileSocket | 文件传输组件 | NuGet | 中文 | English | 大文件传输、断点续传 |
| 🗂️ SAEA.FTP | FTP 服务器/客户端 | NuGet | 中文 | English | 文件服务器、FTP 客户端 |
| 组件 | 功能 | NuGet | 中文文档 | 英文文档 | 适用场景 |
|---|---|---|---|---|---|
| 🔗 SAEA.RPC | RPC 远程调用 | NuGet | 中文 | English | 微服务通信、远程调用 |
| 📊 SAEA.QueueSocket | 内存消息队列 | NuGet | 中文 | English | Pub/Sub、事件通知 |
| 组件 | 功能 | NuGet | 中文文档 | 英文文档 | 适用场景 |
|---|---|---|---|---|---|
| 🌍 SAEA.DNS | DNS 服务器/客户端 | NuGet | 中文 | English | DNS 代理、域名解析 |
┌─────────────────────────────────────────────────────────────────┐
│ SAEA 组件家族架构总览 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌───────────── 应用层组件 ─────────────┐ │
│ │ │ │
│ │ ┌─────────┐ ┌──────────┐ │ │
│ │ │ MVC │ │ WebSocket│ │ │
│ │ │(Web框架)│ │(实时通信)│ │ │
│ │ └────┬────┘ └────┬─────┘ │ │
│ │ │ │ │ │
│ │ ┌────▼────┐ ┌───▼────┐ ┌─────────┐│ │
│ │ │ RPC │ │ MQTT │ │ Message ││ │
│ │ │(远程调用)│ │(IoT) │ │ Socket ││ │
│ │ └────┬────┘ └───┬────┘ └────┬────┘│ │
│ │ │ │ │ │ │
│ │ ┌────▼────┐ ┌───▼────┐ │ │ │
│ │ │ P2P │ │ Redis │ │ │ │
│ │ │(NAT穿透)│ │(缓存) │ │ │ │
│ │ └────┬────┘ └───┬────┘ │ │ │
│ │ │ │ │ │ │
│ └─────────┼───────────┼────────────┼─────┘ │
│ │ │ │ │
│ ┌─────────▼───────────▼────────────▼─────┐ │
│ │ SAEA.Sockets (核心层) │ │
│ │ IOCP 高性能 Socket 框架 │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────┐ │ │
│ │ │IocpSocket│ │StreamSock│ │UdpSock│ │ │
│ │ │ (IOCP) │ │(流模式) │ │ (UDP) │ │ │
│ │ └──────────┘ └──────────┘ └──────┘ │ │
│ │ ┌──────────────────────────────────┐ │ │
│ │ │ BufferPool │ Session │ Coder │ │ │
│ │ │ (内存池) │(会话) │(编解码) │ │ │
│ │ └──────────────────────────────────┘ │ │
│ └──────────────────┬────────────────────┘ │
│ │ │
│ ┌──────────────────▼────────────────────┐ │
│ │ SAEA.Common (基础层) │ │
│ │ 通用工具类库 (序列化/缓存/加密) │ │
│ │ ┌────────┐ ┌───────┐ ┌───────┐ │ │
│ │ │Serialize│ │ Cache │ │Encrypt│ │ │
│ │ │(序列化) │ │(缓存) │ │(加密) │ │ │
│ │ └────────┘ └───────┘ └───────┘ │ │
│ └───────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
客户端请求流程:
┌─────────┐ ┌──────────┐ ┌──────────┐
│ 客户端 │─────►│ Sockets │─────►│ Coder │
│ (TCP/UDP)│ │ IOCP接收 │ │ 解码 │
└─────────┘ └──────────┘ └──────────┘
│
▼
┌────────────────────────────────┐
│ 应用层处理(业务逻辑) │
│ MVC / RPC / WebSocket / MQTT │
└────────────────────────────────┘
│
▼
┌──────────┐ ┌──────────┐
│ Coder │─────►│ Sockets │─────► 客户端
│ 编码 │ │ IOCP发送 │
└──────────┘ └──────────┘
| 特性 | 说明 |
|---|---|
| 🚀 高性能 IOCP | Windows 完成端口技术,支持万级并发连接 |
| 📦 内存池优化 | BufferManager、UserTokenPool 减少 GC 压力 |
| 🔒 SSL/TLS 加密 | Stream 模式支持安全连接 |
| 🌐 IPv6 支持 | 完全兼容 IPv6 协议 |
| 🔄 会话管理 | SessionManager 自动管理连接会话 |
| 🛠️ 自定义协议 | ICoder 接口支持灵活的协议编解码 |
| 🔗 链式配置 | SocketOptionBuilder 简洁易用 |
| 📝 完整组件 | MVC、WebSocket、RPC、Redis、MQTT 等全场景覆盖 |
| 指标 | SAEA.Sockets | 传统 Socket | 提升 |
|---|---|---|---|
| 并发连接数 | 10,000+ | ~1,000 | 10倍 |
| CPU 利用率 | ~85% | ~30% | 高效 |
| 内存占用 | 池化复用 | 频繁分配 | 低 GC |
| 延迟 | ~1ms | ~10ms | 低延迟 |
| 特性 | SAEA.RPC | HTTP RPC |
|---|---|---|
| 序列化 | Protobuf | JSON |
| 传输协议 | TCP | HTTP |
| 连接模式 | 长连接 | 短连接 |
| 并发模型 | IOCP | 阻塞 |
| 性能 | 高 | 中 |
A: SAEA 适合以下场景:
- 🎮 游戏服务器(实时对战、状态同步)
- 📊 实时数据推送(股票行情、体育比分)
- 🤖 IoT 设备通信(传感器数据上报)
- 💬 即时通讯(私聊、群聊、客服系统)
- 🔗 微服务通信(RPC 远程调用)
- 📁 大文件传输(断点续传、高速传输)
- 🌐 P2P 直连通信(NAT 穿透、局域网发现)
A: 根据你的需求选择:
你的需求 推荐组件
─────────────────────────────────────
Web API 开发 → SAEA.MVC
实时聊天/推送 → SAEA.WebSocket
P2P 直连通信 → SAEA.P2P
IoT 设备通信 → SAEA.MQTT
Redis 缓存操作 → SAEA.RedisSocket
微服务 RPC → SAEA.RPC
文件传输 → SAEA.FileSocket
自定义协议 → SAEA.Sockets
A: 基于 .NET Standard 2.0,支持:
- ✅ Windows(IOCP 最佳性能)
- ✅ Linux(异步 Socket)
- ✅ macOS
A: 搜索 "SAEA" 或直接安装:
# Package Manager
Install-Package SAEA.Sockets -Version 7.26.2.2
# .NET CLI
dotnet add package SAEA.Sockets --version 7.26.2.2A: 3 步快速开始:
- 安装对应组件的 NuGet 包
- 阅读组件 README 的 "30秒快速开始"
- 查看完整示例代码
每个组件都有详细的使用示例和注释。
A: Src 中包含多个测试项目,展示实际使用场景:
SAEA.SocketsTest- Socket 使用示例SAEA.WebSocketTest- WebSocket 示例SAEA.MVCTest- MVC Web 应用示例SAEA.RedisTest- Redis 操作示例SAEA.RPCTest- RPC 调用示例SAEA.P2PTest- P2P NAT 穿透示例
- WebRedisManager - 基于 SAEA.RedisSocket 的 Redis 管理工具
- SAEA.Rested - 基于 SAEA.MVC 的 REST API 示例
- GFF - 基于 SAEA 的仿 QQ 通信程序
- QQ 群:788260487
- Issues:GitHub Issues
Apache License 2.0









