# TCP 转发服务 ## 功能 1. 监听 **TCP 端口**(默认 9600),接收外部命令 2. 根据命令向远端 TCP 服务发送对应消息 3. 启动后自动延时发送 `<1,1,post>` ## 命令流程 | TCP 收到(服务端) | 远端 TCP 发送 | 后续动作 | |-------------------|--------------|----------| | `<1,0,post>` | `<1,1,post>` | - | | `<1,1,post>` | `<1,0,post>` | 延时后自动再发 `<1,1,post>` | | 启动延时 | `<1,1,post>` | 仅一次 | ## 配置说明 (`config.json`) | 字段 | 默认值 | 说明 | |------|--------|------| | `server.port` | `9600` | 本机 TCP 监听端口 | | `remote.host` | `127.0.0.1` | 远端 TCP 服务地址 | | `remote.port` | `9000` | 远端 TCP 服务端口 | | `remote.dial_timeout_seconds` | `5` | 连接远端超时秒数 | | `timing.startup_delay_seconds` | `180` | 启动后延时发送秒数(默认 3 分钟) | | `timing.resend_delay_seconds` | `180` | 收到 `<1,1,post>` 后重发延时秒数(默认 3 分钟) | | `log.dir` | `logs` | 日志目录 | | `log.level` | `info` | 日志级别: debug/info/warn/error | | `log.keep_days` | `60` | 日志保留天数,超期自动删除 | | `reverse` | `false` | `true`=正(反转发送逻辑), `false`=反(默认不变) | ## 正反参数说明 | `reverse` | 收到 `<1,0,post>` 时发送 | 收到 `<1,1,post>` 时发送 | 启动/退出/定时发送 | |-----------|-------------------------|-------------------------|-------------------| | `false`(反,默认) | `<1,1,post>` | `<1,0,post>` | `<1,1,post>` | | `true`(正) | `<1,0,post>` | `<1,1,post>` | `<1,0,post>` | ## 日志 - 按天滚动:`logs/tcp_service_2026-07-01.log` - 每天零点自动切换到新文件 - 保留最近 60 天,超期自动清理 - 同时输出到控制台和文件 ## 使用方式 ### 编译 ```bash cd tcp set GOOS=windows&& set GOARCH=386&& go build -o tcp_service.exe main.go ``` ### 运行 ```bash # 使用默认 config.json ./tcp_service.exe # 指定配置文件 ./tcp_service.exe /path/to/config.json ``` ### 测试(用 telnet / nc 发命令) ```bash # 发送 <1,0,post> echo "<1,0,post>" | nc 127.0.0.1 9600 # 发送 <1,1,post> echo "<1,1,post>" | nc 127.0.0.1 9600 ```