Tcp客户端报错原因分析

00000001 2026-03-26 03:06:04 CTcpClient TCP连接测试ConnectTest failed!Server Ipaddr:10.135.134.103, iPort=7807,错误:Bad file descriptor

00000002 2026-03-26 03:06:04 CTcpClient ConnectThread 连接服务器失败!Server Ipaddr:10.135.134.103, iPort=7807,错误:Connection reset by peer

00000003 2026-03-26 03:06:04 CTcpClient ConnectThread 连接服务器失败!Server Ipaddr:10.135.134.101, iPort=7807,错误:Operation now in progress

00000004 2026-03-26 03:06:04 CTcpClient ConnectThread 连接服务器失败!Server Ipaddr:10.135.134.102, iPort=7807,错误:Operation now in progress

00000005 2026-03-26 03:06:05 CTcpClient TCP连接测试ConnectTest failed!Server Ipaddr:10.135.134.101, iPort=7807,错误:Bad file descriptor

00000006 2026-03-26 03:06:05 CTcpClient TCP连接测试ConnectTest failed!Server Ipaddr:10.135.134.102, iPort=7807,错误:Bad file descriptor

00000007 2026-03-26 03:06:06 CTcpClient ConnectThread 连接服务器失败!Server Ipaddr:10.135.134.103, iPort=7807,错误:Operation now in progress

00000008 2026-03-26 03:06:06 CTcpClient ConnectThread 连接服务器失败!Server Ipaddr:10.135.134.102, iPort=7807,错误:Operation now in progress

00000009 2026-03-26 03:06:06 CTcpClient ConnectThread 连接服务器失败!Server Ipaddr:10.135.134.101, iPort=7807,错误:Operation now in progress

00000010 2026-03-26 03:06:08 CTcpClient TCP连接测试ConnectTest failed!Server Ipaddr:10.135.134.103, iPort=7807,错误:Bad file descriptor

00000011 2026-03-26 03:06:08 CTcpClient ConnectThread 连接服务器失败!Server Ipaddr:10.135.134.103, iPort=7807,错误:Connection reset by peer

一、日志里 3 种错误分别是什么意思?

  1. Bad file descriptor(最关键、最频繁)

翻译:文件描述符无效 / 套接字已关闭

你用了一个已经被 close 关闭的 socket

或者根本没创建成功的 socket

去执行connect/send/recv

→ 直接报这个错

  1. Connection reset by peer

翻译:服务器强制断开了连接

你连上了,但服务器立刻把连接踢掉

原因:你用了无效 socket,服务器直接拒绝

  1. Operation now in progress

翻译:非阻塞连接正在进行中(被你错误当成失败)

非阻塞connect本来就是这个返回值

你的代码逻辑错误:把正常状态当成 "连接失败"

原因分析:

socket 没有重新创建就反复使用

connect 失败后,必须重新 socket (...) 创建新套接字

你没有重新创建,直接用旧的、已失效的 fd → Bad file descriptor

非阻塞 connect 逻辑错误

把EINPROGRESS当成连接失败,实际是正在连接中

socket 生命周期管理混乱

关闭了 fd,还继续用;或者没初始化就用

多线程环境没有加锁 / 没有判断 fd 有效性

相关推荐
流浪00114 分钟前
C/C++ 后端筑基系列(一):C语言 —— 从基础到进阶系统指南
c语言
迪康coolmu24 分钟前
企业文件外发防泄漏实践:从通道封堵到三层全链路管控
大数据·运维·网络·人工智能·安全·阿里云
星恒讯工业路由器8 小时前
新一代通信网:从“连接万物”到“智联万物”的关键跃迁
网络·物联网·智能路由器·工业路由器·工业物联网·5g-a·新一代通信网
comedate8 小时前
Windows / Linux GPU 虚拟内存布局差异与 CUDA 越界访问行为
linux·windows·mmu·cuda 越界访问
暴力求解10 小时前
Linux网络---传输层协议TCP(二)
linux·服务器·开发语言·网络·tcp/ip
石头猫灯10 小时前
WordPress wp2shell 漏洞链完整拆解流程
网络·数据结构·安全·web安全
网安蟹佬霸10 小时前
OSINT开源情报收集实战:从信息搜集到资产测绘(2026最新万字保姆级指南)
前端·网络·安全·web安全·网络安全·开源
别动我齐刘海10 小时前
机器人运动控制学习2——基础进阶
c++·人工智能·神经网络·学习·目标检测·机器学习·机器人
ltl11 小时前
序列化格式深度对比:Protobuf、FlatBuffers、Cap’n Proto
linux
lengjingzju11 小时前
编译与调试完全指南—第17章 总结
linux