05-常见问题
常见问题
Q: 连接被拒绝 (Connection Refused)?
- 可能原因:
- 目标端口上没有服务在监听
- 防火墙阻止了连接
- 目标服务器只绑定了特定 IP(如 127.0.0.1)
- 解决方案:
- 确认目标服务器确实在运行并监听该端口
- 使用
netstat -an查看端口监听状态 - 检查防火墙规则
- 尝试用
telnet host port测试连通性
Q: 端口已被占用 (Address Already in Use)?
TCP 服务端/UDP 模式下,如果本地端口已被其他程序占用,会提示此错误。
- 解决方案:
- 更换端口号
- 使用
netstat -ano | findstr :端口号找到占用端口的进程 PID - 在任务管理器中结束该进程
Q: TCP 服务端模式下,发送数据给哪个客户端?
发送数据前,需要在左侧 已连接客户端 列表中选中一个客户端。未选中时发送按钮不生效。
Q: UDP 收不到数据?
- 检查项:
- 是否点击了 绑定 按钮
- 本地端口是否被其他程序占用
- 发送方是否向正确的 IP:Port 发送数据
- 防火墙是否阻止了 UDP 入站流量
Q: TCP 粘包/拆包怎么处理?
这是 TCP 协议的特性,不是程序问题:
- 粘包:多次发送的小数据被合并到一个 TCP 段
- 拆包:一次发送的大数据被拆分到多个 TCP 段
- 处理方法:
- 在应用层定义消息边界(如固定长度、分隔符、长度前缀)
- 使用 NexSocket 观察接收情况,确认数据是否完整
- 在 Hex 模式下查看原始字节,辅助分析
Q: 可以同时连接多个服务器吗?
当前每个 NexSocket 实例只能维护一个连接。如需同时连接多个服务器,请启动多个 NexSocket 实例。
Q: 支持 SSL/TLS 加密吗?
当前版本不支持 SSL/TLS 加密,所有数据以明文传输。如果需要对端加密,可以在操作系统层面使用 VPN 或 SSH 隧道进行加密转发。
Q: 连接空闲时间长了会自动断开吗?
- TCP 连接本身不会因空闲而断开,但:
- 操作系统可能因资源回收断开
- 路由器/NAT 设备可能因超时断开(通常 5-120 分钟)
- 对端服务可能设置了空闲超时
建议在应用层实现心跳机制(定时发送小数据包保持连接)。