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

相关推荐
我不管我就要叫小猪2 分钟前
嵌入式Linux----网络通信
linux·运维·服务器
小羊先生car5 分钟前
RTOS-F429-HAL-绝对延时和相对延时(2026/7/31)
c语言·rtos
泡沫冰@29 分钟前
ECS 的介绍和使用
linux·服务器·网络
笨鸟先飞,勤能补拙32 分钟前
AI 赋能网络安全领域深度剖析
网络·人工智能·windows·安全·web安全·网络安全·github
姜太小白1 小时前
【Linux】df -h 卡住问题的通用排查与解决方案总结
linux·运维·php
fengyehongWorld1 小时前
Linux 终端快捷键
linux·运维
鲜花飘飘扬2 小时前
HTTP请求头中表示代理IP地址的属性及获取情况
网络协议·tcp/ip·http
哎呦喂我去去去2 小时前
C#实现屏幕墙:同时监控多个电脑桌面(支持Windows、信创Linux、银河麒麟、统信UOS)
linux·windows·c#
峥无3 小时前
C++11 深度详解:现代 C++ 基石全梳理
开发语言·c++·笔记
阿米亚波3 小时前
【C++ STL】std::unordered_multimap
开发语言·数据结构·c++·笔记·stl