UDP/TCP網絡轉發器程序說明書
1. 程序概述
本程序是一個高性能網絡數據轉發工具,支持UDP和TCP協議之間的雙向數據轉發,并具備以下核心功能:
- 協議轉換:實現UDP?TCP協議轉換
- 數據轉換:支持十六進制/ASCII格式的數據轉換規則
- 智能窗口控制:可隱藏/顯示/最小化控制臺窗口
- 熱重載配置:修改配置無需重啟程序
- 自動恢復:網絡異常自動重連,內存自動管理
2. 系統要求
項目 | 要求 | 備注 |
---|---|---|
運行環境 | .NET 6.0 Desktop Runtime | 下載鏈接 |
操作系統 | Windows 7/10/11 | 需管理員權限運行 |
網絡要求 | TCP/UDP端口訪問權限 | 建議關閉防火墻測試 |
3. 配置文件詳解
3.1 配置文件示例
# ========== 窗口控制 ========== WINDOW_TYPE=0 # 0=隱藏, 1=正常顯示, 2=最小化# ========== 數據轉換規則 ========== # 格式: 源數據=目標數據 (支持十六進制和ASCII) 0xAA=0xBB # 十六進制→十六進制 HELLO=WORLD # ASCII→ASCII 0x48656C6C6F=HI # 十六進制→ASCII TEST=0x54455354 # ASCII→十六進制# ========== 網絡配置 ========== # UDP監聽設置 (必填) UDP_LISTEN=127.0.0.1:5000# TCP轉發目標 (必填) TCP_FORWARD=192.168.1.100:6000# TCP監聽設置 (可選) #TCP_LISTEN=0.0.0.0:7000# UDP轉發目標 (可選) #UDP_FORWARD=255.255.255.255:8000
3.2 配置項說明
配置項 | 說明 | 技術細節 |
---|---|---|
WINDOW_TYPE | 控制臺窗口顯示模式 | 使用Windows API的ShowWindow函數實現,需要kernel32.dll/user32.dll |
UDP_LISTEN | UDP監聽端點 | 使用System.Net.Sockets.UdpClient實現綁定 |
TCP_FORWARD | TCP轉發目標 | 使用System.Net.Sockets.TcpClient異步連接 |
轉發規則 | 數據轉換規則 | 支持多規則匹配,優先使用最先匹配的規則 |
配置熱重載機制:程序每5秒檢查配置文件修改時間,通過FileSystemWatcher實現無重啟更新配置。
4. 核心功能實現
4.1 數據轉發架構
+---------------+ | UDP Listener |←[0xAA→0xBB規則] +---------------+↓ +---------------+ | 數據轉換引擎 |←[配置文件規則] +---------------+↓ +---------------+ | TCP Forwarder |→[目標服務器] +---------------+
4.2 關鍵技術點
- 異步IO模型:全程使用async/await異步編程
- 線程安全:使用lock保護共享資源
- 內存管理:自動GC回收,大內存預警(>100MB)
- 錯誤處理:全局異常捕獲+服務自動重啟
5. 使用指南
5.1 快速開始
- 安裝.NET 6.0運行環境
- 將程序與config.txt放于同一目錄
- 修改config.txt配置網絡參數
- 直接運行程序
5.2 調試技巧
場景 | 調試方法 |
---|---|
窗口不隱藏 | 檢查是否有多實例運行,嘗試管理員權限 |
轉發失敗 | 使用telnet/nc測試端口連通性 |
規則不生效 | 檢查數據格式(十六進制需0x前綴) |
窗口隱藏模式警告:WINDOW_TYPE=0時,只能通過任務管理器結束進程。