# WinFormsDotNetty **Repository Path**: yaoshanli/win-forms-dot-netty ## Basic Information - **Project Name**: WinFormsDotNetty - **Description**: winform dotnetty开发sokcet 、websocket入门 - **Primary Language**: C# - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 1 - **Created**: 2022-05-27 - **Last Updated**: 2026-04-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # WinFormsDotNetty ## 简介 WinFormsDotNetty 是一个基于 WinForms + DotNetty 实现的 TCP 服务器项目,支持 Socket 和 WebSocket 两种通讯方式。该项目可以同时运行 Socket 服务器和 WebSocket 服务器,用于接受客户端连接并进行双向通讯。 ## 软件架构 - **前端框架**: WinForms (.NET 6.0-windows) - **网络框架**: DotNetty - **编码处理**: GB2312 / UTF8 编码转换 ## 功能特性 - **Socket 服务器**: 支持 TCP 短连接通讯 - **WebSocket 服务器**: 支持 WebSocket 全双工通讯 - **编码转换**: 内置 GB2312 与 UTF8 编码互转工具类 - **连接管理**: 分别维护 Socket 和 WebSocket 的客户端连接列表 - **多线程支持**: 使用线程池处理并发连接 ## 项目结构 ``` WinFormsDotNetty/ ├── dotnetty/ │ ├── SocketDotNettyServer.cs # Socket 服务器实现 │ ├── SocketDotNettyHandler.cs # Socket 消息处理器 │ ├── SocketDotNettyInitializer.cs # Socket 通道初始化器 │ ├── WebSocketDotNettyServer.cs # WebSocket 服务器实现 │ ├── WebSocketDotNettyHandler.cs # WebSocket 消息处理器 │ └── WebSocketDotNettyInitializer.cs # WebSocket 通道初始化器 ├── common/ │ ├── EncodingUtils.cs # 编码转换工具类 │ ├── SocketGroup.cs # Socket 连接管理组 │ └── WebSocketGroup.cs # WebSocket 连接管理组 ├── Form1.cs / Form1.Designer.cs # 主窗体 UI ├── Program.cs # 程序入口 └── webscoketClinet.html # WebSocket 测试客户端页面 ``` ## 安装教程 ### 环境要求 - .NET 6.0 SDK - Windows 操作系统 ### 构建步骤 1. 使用 Visual Studio 2022 或 VS Code 打开解决方案 `WinFormsApp1.sln` 2. 还原 NuGet 包依赖 3. 编译运行项目 ### NuGet 依赖 - DotNetty - DotNetty.Buffers - DotNetty.Codecs - DotNetty.Codecs.Http - DotNetty.Common - DotNetty.Transport ## 使用说明 ### 启动服务器 1. 运行程序打开主窗口 2. 在 Socket 标签页设置端口号,点击"启动"按钮启动 Socket 服务器 3. 在 WebSocket 标签页设置端口号,点击"启动"按钮启动 WebSocket 服务器 ### 测试 WebSocket 使用 `webscoketClinet.html` 页面进行 WebSocket 连接测试: 1. 在浏览器中打开 `webscoketClinet.html` 2. 输入服务器地址和端口 3. 连接后即可发送和接收消息 ### 编码转换 项目提供了 `EncodingUtils` 工具类用于编码转换: ```csharp // GB2312 转 UTF8 string utf8Text = EncodingUtils.gb2312_utf8(text); // UTF8 转 GB2312 string gb2312Text = EncodingUtils.utf8_gb2312(text); ``` ## 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request ## 许可证 MIT License