news 2026/3/12 21:48:29

Socket 编程:IP转换、字节序与地址结构详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Socket 编程:IP转换、字节序与地址结构详解

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

一、 为什么需要“翻译官”?(字节序转换)

计算机存储数据有两种方式:

  • 小端序 (Little Endian):低位在前(大部分 PC、Linux 主机默认)。
  • 大端序 (Big Endian):高位在前(网络传输标准)。

如果你的主机是小端序,直接把端口号80发给网络,网络设备可能会把它读成20480!因此,我们需要一组函数来进行“翻译”。

助记口诀

函数名中的字母代表含义:

  • h: host(主机字节序)
  • n: net(网络字节序)
  • s: short(16位,用于端口号)
  • l: long(32位,用于 IPv4 地址)

常用函数

  • htons(8888): Host to Network Short ->把端口号转为大端(最常用)。
  • ntohs(port): Network to Host Short ->把收到的端口号转回本机格式
  • htonl(ip): Host to Network Long ->把 IP 整数转为大端
  • ntohl(ip): Network to Host Long ->把收到的 IP 整数转回本机格式

二、 IP 地址的“变身”:字符串 vs 整数

人类习惯看字符串形式的 IP(如"192.168.1.1"),但计算机网络层只认 32 位的整数(大端序)。我们需要两个核心函数来转换。

1.inet_pton(P -> N)

  • 含义:Presentation (字符串) to Numeric (数值)。
  • 作用:将"192.168.1.1"转为大端整数,存入struct in_addr
  • 原型int inet_pton(int af, const char *src, void *dst);

2.inet_ntop(N -> P)

  • 含义:Numeric (数值) to Presentation (字符串)。
  • 作用:将网络发来的大端整数 IP 转回"192.168.1.1"方便打印。
  • 原型const char *inet_ntop(int af, const void *src, char *dst, socklen_t size);

三、 核心结构体:sockaddr_in

在 Socket 编程中,最重要的结构体莫过于 IPv4 的地址结构struct sockaddr_in

structsockaddr_in{sa_family_tsin_family;// 地址族协议,必须写 AF_INETin_port_tsin_port;// 端口号 (必须用 htons 转为网络字节序)structin_addrsin_addr;// IP地址 (必须是网络字节序的大端整数)};

注意:在调用bind

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

Z-Image Turbo体验指南:1块钱起玩转阿里开源模型

Z-Image Turbo体验指南:1块钱起玩转阿里开源模型 引言:为什么选择云端体验Z-Image Turbo? 阿里最新开源的Z-Image Turbo模型在图像生成领域引起了广泛关注,但很多技术爱好者在本地部署时遇到了各种报错和兼容性问题。如果你也遇…

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

ComfyUI恐惧症治愈:Z-Image云端极简模式体验

ComfyUI恐惧症治愈:Z-Image云端极简模式体验 1. 为什么你需要Z-Image极简模式 如果你曾经被ComfyUI复杂的节点连线界面吓退,那么Z-Image云端极简模式就是为你量身定制的解决方案。想象一下,ComfyUI原本的界面就像是一台专业录音棚的调音台&…

作者头像 李华
网站建设 2026/3/10 2:21:14

数字内容保存高效解决方案:让珍贵记忆永不丢失

数字内容保存高效解决方案:让珍贵记忆永不丢失 【免费下载链接】VK-Video-Downloader Скачивайте видео с сайта ВКонтакте в желаемом качестве 项目地址: https://gitcode.com/gh_mirrors/vk/VK-Video-Download…

作者头像 李华
网站建设 2026/3/12 6:19:23

国家中小学智慧教育平台教材下载完整指南:3步轻松获取电子课本

国家中小学智慧教育平台教材下载完整指南:3步轻松获取电子课本 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具 项目地址: https://gitcode.com/GitHub_Trending/tc/tchMaterial-parser 还在为无法下载国家中小学智慧教育平台…

作者头像 李华
网站建设 2026/3/7 10:42:35

【稀缺技术揭秘】:超低延迟音视频传输是如何实现的?

第一章:超低延迟音视频传输的技术背景在实时通信、云游戏、远程医疗和在线教育等场景中,用户对音视频交互的实时性要求日益提升。传统流媒体协议如HLS或RTMP通常带来数秒级延迟,已无法满足当前业务需求。超低延迟音视频传输技术应运而生&…

作者头像 李华