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

相关推荐
王老师青少年编程7 小时前
2025年【江苏“信息与未来”编程思维】真题及题解(T2:坐标变换)
c++·题解·真题·坐标变换·编程思维·江苏·信息与未来
sdghterhd8 小时前
WebSocket 快速入门教程(附示例源码)
网络·websocket·网络协议
donoot9 小时前
Linux系统下图书馆级电子书全自动标准化分类整理完整实施方案
大数据·linux·运维·电子书管理
xy34539 小时前
Wireshark捕获过滤器——语法元素详解
网络·测试工具·渗透测试·wireshark
似是燕归来9 小时前
嵌入式工程师进阶指南:适配器编程设计模式一
c语言·stm32·适配器模式·嵌入式开发
Felix-lxd9 小时前
Ubuntu 22.04 配置 Nginx
linux·nginx·ubuntu
DLYSB_10 小时前
生命通道:如何用 HIS 医疗系统直连网络声光终端,打造“零延误”的危急值响应网关?
java·网络·数据库·报警灯
skywalk816310 小时前
设计并实现段言的 C FFI 绑定机制 @Trae
c语言·开发语言·python·编程
Tim_Van10 小时前
在 CentOS 7 中安装 Chromium 的完整步骤
linux·运维·chrome·centos
德福危险11 小时前
富有想象力的XSS盲打:靶机练习之Tempus_fugit5
服务器·网络·xss