# SAEA
**Repository Path**: chalu/SAEA
## Basic Information
- **Project Name**: SAEA
- **Description**: No description available
- **Primary Language**: C#
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-04-30
- **Last Updated**: 2026-04-30
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
#  SAEA - 高性能网络通信框架家族 🚀
[](https://www.nuget.org/packages?q=saea)
[](https://www.apache.org/licenses/LICENSE-2.0.html)
**[English Version](README.en.md)** | **中文版**
> 基于 .NET Standard 2.0 的高性能 IOCP 网络通信框架,提供完整的网络应用解决方案。
**SAEA.Socket** 是一个 IOCP 高性能 sockets 网络框架,Src 中包含其使用场景,例如大文件传输、WebSocket 客户端和服务器、高性能消息队列、RPC、Redis 驱动、HTTP Server、MQTT、MVC、DNS、消息服务器等。
---
## 快速导航 🧭
| 章节 | 内容 |
|------|------|
| [⚡ 30秒快速开始](#30秒快速开始) | 最简单的上手方式 |
| [🧩 组件导航](#组件导航) | 选择合适的组件 |
| [📐 项目架构](#项目架构) | 整体架构设计 |
| [✨ 核心特性](#核心特性) | 主要功能亮点 |
| [📊 性能对比](#性能对比) | 与同类框架对比 |
| [❓ 常见问题](#常见问题) | FAQ 快速解答 |
| [🔗 资源链接](#资源链接) | 更多学习资源 |
---
## 30秒快速开始 ⚡
### 方式 1: 安装核心 Socket 框架
```bash
dotnet add package SAEA.Sockets
```
```csharp
// 创建 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();
```
### 方式 2: 选择适合你的组件
根据你的需求选择对应组件:
| 你的需求 | 推荐组件 | 安装命令 |
|----------|----------|----------|
| 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](https://www.nuget.org/packages/SAEA.Sockets) | [中文](Src/SAEA.Sockets/README.md) | [English](Src/SAEA.Sockets/README.en.md) | 游戏服务器、实时通信、IoT |
| 🔧 **SAEA.Common** | 通用工具类库 | [NuGet](https://www.nuget.org/packages/SAEA.Common) | [中文](Src/SAEA.Common/README.md) | [English](Src/SAEA.Common/README.en.md) | 序列化、缓存、加密 |
### Web 应用组件
| 组件 | 功能 | NuGet | 中文文档 | 英文文档 | 适用场景 |
|------|------|-------|---------|---------|----------|
| 🌐 **SAEA.Http** | HTTP 服务器 | [NuGet](https://www.nuget.org/packages/SAEA.Http) | [中文](Src/SAEA.Http/README.md) | [English](Src/SAEA.Http/README.en.md) | RESTful API、静态文件服务 |
| 🎨 **SAEA.MVC** | MVC Web 框架 | [NuGet](https://www.nuget.org/packages/SAEA.MVC) | [中文](Src/SAEA.MVC/README.md) | [English](Src/SAEA.MVC/README.en.md) | Web 应用、API 服务 |
### 实时通信组件
| 组件 | 功能 | NuGet | 中文文档 | 英文文档 | 适用场景 |
|------|------|-------|---------|---------|----------|
| 💬 **SAEA.WebSocket** | WebSocket 服务器/客户端 | [NuGet](https://www.nuget.org/packages/SAEA.WebSocket) | [中文](Src/SAEA.WebSocket/README.md) | [English](Src/SAEA.WebSocket/README.en.md) | 实时聊天、推送通知 |
| 🤖 **SAEA.MQTT** | MQTT 协议实现 | [NuGet](https://www.nuget.org/packages/SAEA.MQTT) | [中文](Src/SAEA.MQTT/README.md) | [English](Src/SAEA.MQTT/README.en.md) | IoT 设备、智能家居 |
| 📨 **SAEA.MessageSocket** | 消息服务器 | [NuGet](https://www.nuget.org/packages/SAEA.MessageSocket) | [中文](Src/SAEA.MessageSocket/README.md) | [English](Src/SAEA.MessageSocket/README.en.md) | 即时通讯、在线客服 |
### P2P 通信组件
| 组件 | 功能 | NuGet | 中文文档 | 英文文档 | 适用场景 |
|------|------|-------|---------|---------|----------|
| 🔗 **SAEA.P2P** | P2P 直连通信组件 | [NuGet](https://www.nuget.org/packages/SAEA.P2P) | [中文](Src/SAEA.P2P/README.md) | [English](Src/SAEA.P2P/README.en.md) | NAT 穿透、局域网发现、即时通讯、游戏对战 |
### 数据与存储组件
| 组件 | 功能 | NuGet | 中文文档 | 英文文档 | 适用场景 |
|------|------|-------|---------|---------|----------|
| 📦 **SAEA.RedisSocket** | Redis 客户端 | [NuGet](https://www.nuget.org/packages/SAEA.RedisSocket) | [中文](Src/SAEA.RedisSocket/README.md) | [English](Src/SAEA.RedisSocket/README.en.md) | Redis 缓存、分布式锁 |
| 📁 **SAEA.FileSocket** | 文件传输组件 | [NuGet](https://www.nuget.org/packages/SAEA.FileSocket) | [中文](Src/SAEA.FileSocket/README.md) | [English](Src/SAEA.FileSocket/README.en.md) | 大文件传输、断点续传 |
| 🗂️ **SAEA.FTP** | FTP 服务器/客户端 | [NuGet](https://www.nuget.org/packages/SAEA.FTP) | [中文](Src/SAEA.FTP/README.md) | [English](Src/SAEA.FTP/README.en.md) | 文件服务器、FTP 客户端 |
### 分布式系统组件
| 组件 | 功能 | NuGet | 中文文档 | 英文文档 | 适用场景 |
|------|------|-------|---------|---------|----------|
| 🔗 **SAEA.RPC** | RPC 远程调用 | [NuGet](https://www.nuget.org/packages/SAEA.RPC) | [中文](Src/SAEA.RPC/README.md) | [English](Src/SAEA.RPC/README.en.md) | 微服务通信、远程调用 |
| 📊 **SAEA.QueueSocket** | 内存消息队列 | [NuGet](https://www.nuget.org/packages/SAEA.QueueSocket) | [中文](Src/SAEA.QueueSocket/README.md) | [English](Src/SAEA.QueueSocket/README.en.md) | Pub/Sub、事件通知 |
### 网络工具组件
| 组件 | 功能 | NuGet | 中文文档 | 英文文档 | 适用场景 |
|------|------|-------|---------|---------|----------|
| 🌍 **SAEA.DNS** | DNS 服务器/客户端 | [NuGet](https://www.nuget.org/packages/SAEA.DNS) | [中文](Src/SAEA.DNS/README.md) | [English](Src/SAEA.DNS/README.en.md) | DNS 代理、域名解析 |
---
## 项目架构 📐
### SAEA 组件家族架构图
```
┌─────────────────────────────────────────────────────────────────┐
│ 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 vs 传统 Socket
| 指标 | SAEA.Sockets | 传统 Socket | 提升 |
|------|--------------|-------------|------|
| **并发连接数** | 10,000+ | ~1,000 | **10倍** |
| **CPU 利用率** | ~85% | ~30% | **高效** |
| **内存占用** | 池化复用 | 频繁分配 | **低 GC** |
| **延迟** | ~1ms | ~10ms | **低延迟** |
### SAEA.RPC vs HTTP RPC
| 特性 | SAEA.RPC | HTTP RPC |
|------|----------|----------|
| **序列化** | Protobuf | JSON |
| **传输协议** | TCP | HTTP |
| **连接模式** | 长连接 | 短连接 |
| **并发模型** | IOCP | 阻塞 |
| **性能** | **高** | 中 |
---
## 常见问题 ❓
### Q1: SAEA 适合什么项目?
**A**: SAEA 适合以下场景:
- 🎮 游戏服务器(实时对战、状态同步)
- 📊 实时数据推送(股票行情、体育比分)
- 🤖 IoT 设备通信(传感器数据上报)
- 💬 即时通讯(私聊、群聊、客服系统)
- 🔗 微服务通信(RPC 远程调用)
- 📁 大文件传输(断点续传、高速传输)
- 🌐 P2P 直连通信(NAT 穿透、局域网发现)
### Q2: 如何选择合适的组件?
**A**: 根据你的需求选择:
```
你的需求 推荐组件
─────────────────────────────────────
Web API 开发 → SAEA.MVC
实时聊天/推送 → SAEA.WebSocket
P2P 直连通信 → SAEA.P2P
IoT 设备通信 → SAEA.MQTT
Redis 缓存操作 → SAEA.RedisSocket
微服务 RPC → SAEA.RPC
文件传输 → SAEA.FileSocket
自定义协议 → SAEA.Sockets
```
### Q3: 是否支持跨平台?
**A**: 基于 .NET Standard 2.0,支持:
- ✅ Windows(IOCP 最佳性能)
- ✅ Linux(异步 Socket)
- ✅ macOS
### Q4: NuGet 如何安装?
**A**: 搜索 "SAEA" 或直接安装:
```bash
# Package Manager
Install-Package SAEA.Sockets -Version 7.26.2.2
# .NET CLI
dotnet add package SAEA.Sockets --version 7.26.2.2
```
[NuGet 地址](https://www.nuget.org/packages?q=saea)
### Q5: 如何快速上手?
**A**: 3 步快速开始:
1. 安装对应组件的 NuGet 包
2. 阅读组件 README 的 "30秒快速开始"
3. 查看完整示例代码
每个组件都有详细的使用示例和注释。
### Q6: 是否有示例项目?
**A**: Src 中包含多个测试项目,展示实际使用场景:
- `SAEA.SocketsTest` - Socket 使用示例
- `SAEA.WebSocketTest` - WebSocket 示例
- `SAEA.MVCTest` - MVC Web 应用示例
- `SAEA.RedisTest` - Redis 操作示例
- `SAEA.RPCTest` - RPC 调用示例
- `SAEA.P2PTest` - P2P NAT 穿透示例
---
## 实例截图 🖼️
---
## 资源链接 🔗
### 官方资源
- [GitHub 仓库](https://github.com/yswenli/SAEA)
- [NuGet 包列表](https://www.nuget.org/packages?q=saea)
- [作者博客](https://www.cnblogs.com/yswenli/)
### 相关项目
- [WebRedisManager](https://github.com/yswenli/WebRedisManager) - 基于 SAEA.RedisSocket 的 Redis 管理工具
- [SAEA.Rested](https://github.com/yswenli/SAEA.Rested) - 基于 SAEA.MVC 的 REST API 示例
- [GFF](https://github.com/yswenli/GFF) - 基于 SAEA 的仿 QQ 通信程序
### 技术支持
- QQ 群:788260487
- Issues:[GitHub Issues](https://github.com/yswenli/SAEA/issues)
---
## 许可证
Apache License 2.0