深入理解socket接口
connect函数函数做了什么事情 传入套接字电话机、服务器IP和端口对方的号码 就是客户端用来主动拨打服务器“电话”的函数 客户端在调用connect前不必调用bind。这就像你打电话时不需要提前告诉电信局“我要用这个号码打出去”操作系统内核会自动帮你选一个空闲的临时端口源端口并自动填上你这台电脑的IP地址源IP。内部发生了什么 (三次握手的触发) 这个函数是“同步阻塞”的——它会一直卡在这里干等直到握手彻底成功或者确认彻底失败才会把结果返回给你。三大碰壁场景情况一服务器“死机”或“网络不通”—— 错误码 ETIMEDOUT超时 发生原因客户端发出的连接请求SYN包石沉大海服务器根本没给任何回应。 底层行为内核不死心会像“催命电话”一样重传。原文提到BSD系统会隔6秒发一次再等24秒发一次总计坚持75秒。 结果实在联系不上放弃返回“连接超时”。 生活类比你打电话给某人那边一直没人接也没挂断你等了整整一分钟最后听到“您拨打的电话无人接听”。情况二服务器“没开这门业务”—— 错误码 ECONNREFUSED连接拒绝 发生原因你的请求SYN成功送到了服务器但服务器发现你指定的“端口号”上没有正在监听的程序比如服务进程没启动。 底层行为服务器立即发回一个 RST复位分节相当于直接“挂断并骂回来”。 结果这是一种硬错误硬伤connect 瞬间返回失败毫不拖延。 生活类比你拨打了号码听筒里立刻传来“您拨打的号码是空号请核实后再拨”对方直接拒接。情况二实际调试补充在和别人联调mqtt通信时候, 我自己电脑有mqtt服务器的部署, netstat | grep 1883 发现mqtt连接的ip端口是: 127.0.0.1:1883意思是只有本地的mqtt客户端mqtt服务器才处理, 其他非主机的ip数据一律过滤这种情况另外主机在connect三次握手时候服务器收到SYN报文后发给客户端的报文是RST因为客户端请求的ip和端口, 没有对应的MQTT服务器处理所以我电脑粗暴的挂断了情况三路由器“迷路”或“堵死”—— 错误码 EHOSTUNREACH主机不可达或 ENETUNREACH网络不可达 发生原因你发出的请求在前往服务器的路上被某个中间路由器拦截了。路由器回复了一个ICMP错误相当于发回一条短信说“目的地找不到”。 底层行为这是一种软错误软伤。内核不慌不忙先缓存这条“找不到路”的报错信息然后继续重传SYN请求就像在楼下固执地按门铃。 结果如果重传了75秒依然没收到任何回复内核才会把之前缓存的“找不到路”的信息翻出来作为最终错误返回给程序。 生活类比你打电话接通了交换机交换机回复“您拨打的地区不在服务区”但系统没立马挂断而是尝试帮你转接了好几次最后转接失败才告诉你“暂时无法接通”。bind函数避坑两个关于 IP 的细节 细节1 服务器绑定了特定 IP 会怎样 假设你的服务器有 192.168.1.10内网和 203.0.113.5公网两个 IP。 如果你的 bind 指定了内网 IP那么客户端只能用内网地址访问用公网 IP 访问会被拒绝。如果你写 INADDR_ANY通配则两个 IP 都能访问。 细节2 客户端没绑 IP内核怎么选源 IP 原文解释了这取决于路由表。 比如你要访问百度公网内核发现数据包必须走外网网关它就会自动把源 IP 设为公网网卡的那个 IP。不需要你手动填客户端不要bind 不是说不能而是不写bind省事全交给内核自动分配就好了直接connect的时候内核会帮你分配源ip portbind时候以下组合搭配四种情况:

相关新闻

广西跨境商贸AI大模型推荐位抢占方法

广西跨境商贸AI大模型推荐位抢占方法

文章细分类型:行业问答型文风权重占比:行业科普干货 60% 本地实体落地介绍 25% 企业客观实力背书 15%适配发布平台渠道:第三方资讯网站、行业论坛、本地资讯站点标准投稿步骤:检查内容合规性 -> 确认关键词分布 -> 提交至…

2026/8/6 18:11:49 阅读更多 →
如何用RVC在10分钟内创建专业级AI变声模型?终极免费指南

如何用RVC在10分钟内创建专业级AI变声模型?终极免费指南

如何用RVC在10分钟内创建专业级AI变声模型&#xff1f;终极免费指南 【免费下载链接】Retrieval-based-Voice-Conversion-WebUI Easily train a good VC model with voice data < 10 mins! 项目地址: https://gitcode.com/GitHub_Trending/re/Retrieval-based-Voice-Conve…

2026/8/6 18:11:49 阅读更多 →
如何用DB-GPT构建你的第一个AI数据助手:从零到一的完整指南

如何用DB-GPT构建你的第一个AI数据助手:从零到一的完整指南

如何用DB-GPT构建你的第一个AI数据助手&#xff1a;从零到一的完整指南 【免费下载链接】DB-GPT open-source agentic AI data assistant for the next generation of AI Data products. 项目地址: https://gitcode.com/GitHub_Trending/db/DB-GPT 你是否曾经面对海量数…

2026/8/6 18:10:48 阅读更多 →

最新新闻

Designcenter NX 官方教程丨第二讲 坐标系和图层使用方法

Designcenter NX 官方教程丨第二讲 坐标系和图层使用方法

绝对坐标系 (ACS) 设计世界的"原点" 想象一下&#xff0c;绝对坐标系就像地球的“北极点”&#xff1a;它是NX中永远不变的"定海神针"所有物体的位置都以它为基准界面中显示为红(X)、绿(Y)、蓝(Z)三根箭头小技巧绝对坐标系就像教室的墙角&#xff0c;虽然…

2026/8/6 19:53:32 阅读更多 →
【单片机课设毕设项目】基于 STM32/51 单片机的缺水防干烧智能加湿硬件系统设计 基于 STM32/51 单片机的实时环境传感数据采集与调控系统(011602)

【单片机课设毕设项目】基于 STM32/51 单片机的缺水防干烧智能加湿硬件系统设计 基于 STM32/51 单片机的实时环境传感数据采集与调控系统(011602)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机&#xff0c;Java、小程序技术领域和毕业项目实战 ✌️…

2026/8/6 19:53:32 阅读更多 →
【单片机毕设案例分享】基于 STM32/51 单片机的传感数据实时显示与联动控制系统 基于 STM32/51 单片机的低成本智能加湿防干烧监测终端设计(011602)

【单片机毕设案例分享】基于 STM32/51 单片机的传感数据实时显示与联动控制系统 基于 STM32/51 单片机的低成本智能加湿防干烧监测终端设计(011602)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于单片机&#xff0c;STM32单片机&#xff0c;51单片机&#xff0c;J…

2026/8/6 19:53:32 阅读更多 →
3分钟零基础教程:用PakePlus轻松将网页变身为专业桌面应用

3分钟零基础教程:用PakePlus轻松将网页变身为专业桌面应用

3分钟零基础教程&#xff1a;用PakePlus轻松将网页变身为专业桌面应用 【免费下载链接】PakePlus Turn any webpage/HTML/Vue/React and so on into desktop and mobile app under 5M with easy in few minutes. 轻松将任意网站/HTML/Vue/React等项目构建为轻量级(小于5M)多端桌…

2026/8/6 19:53:32 阅读更多 →
Codex 修 Bug 总是越改越多?把复现、定位、修复、回归测试做成一个 Skill

Codex 修 Bug 总是越改越多?把复现、定位、修复、回归测试做成一个 Skill

摘要&#xff1a;一句“帮我修复这个 Bug”&#xff0c;很容易换来一次范围失控的修改。本文给出一套证据优先的 Codex 修复流程&#xff1a;先固定复现&#xff0c;再定位最早出错的位置&#xff0c;用最小补丁解决根因&#xff0c;补回归测试&#xff0c;最后按证据验收。文末…

2026/8/6 19:53:32 阅读更多 →
从入门到精通:NeoTerm终端会话管理与多任务处理技巧

从入门到精通:NeoTerm终端会话管理与多任务处理技巧

从入门到精通&#xff1a;NeoTerm终端会话管理与多任务处理技巧 【免费下载链接】NeoTerm &#x1f44d; modern terminal emulator for Android 项目地址: https://gitcode.com/gh_mirrors/ne/NeoTerm NeoTerm是一款现代化的Android终端模拟器&#xff0c;专为提升移动…

2026/8/6 19:52:32 阅读更多 →

日新闻

深入解析LimboAI C++内核:架构设计与性能优化实战

深入解析LimboAI C++内核:架构设计与性能优化实战

1. 项目概述&#xff1a;为什么我们需要深入LimboAI的C内核&#xff1f;如果你是一名使用Godot引擎的游戏开发者&#xff0c;尤其是对AI行为逻辑有较高要求的项目&#xff0c;那么LimboAI这个名字你大概率不会陌生。它作为Godot 4生态中一个备受瞩目的行为树与状态机插件&#…

2026/8/6 0:00:06 阅读更多 →
Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

1. 项目概述与核心思路大家好&#xff0c;我是老张&#xff0c;一个在游戏开发一线摸爬滚打了十多年的老码农。今天咱们接着聊《空洞骑士》风格2D动作游戏的Demo制作。上一期我们搭好了基础框架&#xff0c;处理了角色移动和碰撞&#xff0c;这一期&#xff0c;我们要让游戏世界…

2026/8/6 0:00:06 阅读更多 →
被动防火门市场前景发展趋势

被动防火门市场前景发展趋势

被动防火门依靠材质结构、密闭构造阻隔烟火蔓延&#xff0c;无需电控启动&#xff0c;是建筑被动消防系统核心构件&#xff0c;行业依托新规管控、城市更新、工业安全升级迎来稳定扩容&#xff0c;整体朝着合规化、专项化、低碳化、智能化方向发展。现阶段 GB12955‑2024 新版国…

2026/8/6 0:00:06 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流&#xff1a;一个核心问题的诞生想象一下&#xff0c;你是一个城市供水系统的总工程师。你的城市有多个水源&#xff08;水库&#xff09;&#xff0c;需要通过一个复杂的地下管道网络&#xff0c;将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/5 15:00:43 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示&#xff1a;本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/5 13:13:56 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起&#xff1a;为什么我们需要互相关几年前&#xff0c;我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号&#xff0c;理论上它们接收到的声音波形应该非常相似&#xff0c;只是由于麦克风位置不同&#xff…

2026/8/5 10:20:36 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速&#xff1a;macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/5 23:28:39 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南&#xff1a;3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗&#xff1f;ncmdump解密工具帮你轻松解决这个困…

2026/8/5 21:00:14 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片&#xff1a;为英语学习 App 打造桌面级学习助手适用平台&#xff1a;HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0&#xff08;API 26 Beta&#xff09;新增了 AgentCard 智能体卡片能力&#xff0c;这是继 HMAF&#xff08;鸿蒙智能体框架&#x…

2026/8/5 23:46:51 阅读更多 →