news 2026/6/15 14:14:14

Socket 编程必修课:Bind 函数与地址结构体的奥秘

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Socket 编程必修课:Bind 函数与地址结构体的奥秘

各类资料学习下载合集
链接:https://pan.quark.cn/s/7c8c391011eb

一、 为什么必须 Bind?

在 TCP 通信中,服务器的角色就像是一家实体店

  • Socket:相当于你注册了营业执照。
  • Bind:相当于你租下了一个具体的门面(IP + 端口)。

如果你不开店(不 Bind),虽然你也可以去逛街(作为客户端连接别人),但顾客(客户端)永远找不到你在哪里。因此,服务器必须绑定固定的 IP 和端口


二、 结构体的“变装秀”:sockaddrvssockaddr_in

这是 Socket 编程中最让新手困惑的地方:为什么有两个地址结构体?

1. 历史遗留问题

bind函数设计之初,是为了支持所有协议(IPv4, IPv6, UNIX 域等)。因此,它的参数类型是通用的struct sockaddr*

2. 内存布局对比

为了方便程序员操作,针对 IPv4 协议,系统提供了专用的struct sockaddr_in。好消息是,它们在内存中的大小完全一样(16字节),可以直接强转。

字节偏移struct sockaddr(通用)struct sockaddr_in(IPv4专用)
0 - 1sa_family(地址族)sin_family(地址族,如 AF_INET)
2 - 3sa_data(混合数据)sin_port(端口号)
4 - 7sin_addr(IP地址)
8 - 15sin_zero(填充字节,为了凑齐16字节)

最佳实践:我们在代码中定义和填充sockaddr_in,但在调用bind时,将其强制类型转换为sockaddr*


三、 Bind 函数详解

intbind(intsockfd,conststructsockaddr*addr,socklen_taddrlen);
  • 参数 1 (sockfd):通过socket()创建的文件描述符。
  • 参数 2 (addr):指向地址结构体的指针(需强转)。
  • 参数 3 (addrlen):结构体的大小,通常写sizeof(struct sockaddr_in)

常用写法模板

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/13 9:29:01

5步掌握语音合成技术:eSpeak NG完整使用指南

5步掌握语音合成技术:eSpeak NG完整使用指南 【免费下载链接】espeak-ng espeak-ng: 是一个文本到语音的合成器,支持多种语言和口音,适用于Linux、Windows、Android等操作系统。 项目地址: https://gitcode.com/GitHub_Trending/es/espeak-…

作者头像 李华
网站建设 2026/6/15 11:20:05

3大骨骼点检测模型对比:Qwen/DeepSeek/StableDiffusion云端实测

3大骨骼点检测模型对比:Qwen/DeepSeek/StableDiffusion云端实测 1. 骨骼点检测是什么?为什么需要对比模型? 骨骼点检测(Pose Estimation)是计算机视觉中的一项基础技术,简单来说就是让AI识别图像或视频中…

作者头像 李华
网站建设 2026/6/15 0:27:58

Blender+AI骨骼绑定:云端自动化流程解放美术生产力

BlenderAI骨骼绑定:云端自动化流程解放美术生产力 引言:当3D动画遇上AI骨骼绑定 想象一下,你是一位动画公司的绑定师,每天要手动为上百个角色模型添加骨骼控制系统。传统流程中,你需要反复调整关节位置、设置权重、测…

作者头像 李华
网站建设 2026/6/15 12:17:06

Mac用户如何玩转Z-Image?云端GPU解决方案来了

Mac用户如何玩转Z-Image?云端GPU解决方案来了 引言:Mac用户的AI绘图困境 作为一名Mac用户,你可能已经被Z-Image生成的惊艳图像所吸引——它能够以照片级的质量快速生成各种风格的图像,甚至能准确渲染中英文文字。但当你兴冲冲地…

作者头像 李华
网站建设 2026/6/15 13:13:36

AI手势识别与追踪数据预处理:图像归一化与坐标转换技巧

AI手势识别与追踪数据预处理:图像归一化与坐标转换技巧 1. 引言:AI 手势识别与追踪的技术价值 随着人机交互技术的快速发展,AI手势识别与追踪正逐步从实验室走向消费级应用。无论是虚拟现实(VR)、增强现实&#xff0…

作者头像 李华
网站建设 2026/6/15 1:30:22

RevokeMsgPatcher防撤回工具深度重构创作指南

RevokeMsgPatcher防撤回工具深度重构创作指南 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了) 项目地址: https://gitcode.com/GitHub_Trending/r…

作者头像 李华