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 有效性

相关推荐
LongRunning几秒前
【linux】RK3568(五)云服务器-视频推流
linux
赵民勇14 分钟前
resolvectl命令详解
linux·运维
新时代牛马20 分钟前
Linux 日志管理:journald、rsyslog 与 logrotate
linux·运维·服务器
あ-21 分钟前
企业 DevOps + 协同办公 + 可观测性 + 网络基础设施平台
运维·网络·devops
数据知道22 分钟前
哈希与密码存储——bcrypt、Argon2、盐值与彩虹表
网络·算法·安全·网络安全·密码学·哈希算法
sbjdhjd28 分钟前
从 7 字符文件名拼接到二维数组取值:PHP 无参函数限制下的受控靶场复盘 | (7字符绕过)
网络·nginx·安全·网络安全·云计算·php·apache
资深电气设计32 分钟前
技术解析:ABB变频器ACH580/ACS180在CDU循环泵系统的应用技术框架
linux·运维·服务器
自律最差的编程狗36 分钟前
Ubuntu下Docker部署Ollama 轻量模型
linux·ubuntu·docker
新时代牛马38 分钟前
Linux 网络配置:iproute2、DNS 与连通性排障
linux·服务器·网络
新时代牛马42 分钟前
Linux systemd 服务管理:从unit 文件到systemctl 启停与排障
linux·服务器·网络