news 2026/5/2 18:07:12

彻底搞懂网络编程中的“字节序”与 IP 地址转换

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
彻底搞懂网络编程中的“字节序”与 IP 地址转换

在网络通信中,字节序(Byte Order)决定了多字节数据(如int,short)在内存中是如何存放的。如果发送方和接收方的存储顺序不一致,数据就会像被“倒着读”一样,变成完全错误的值。

一、 大端 vs 小端:内存里的博弈

对于一个 4 字节整数0x12345678(十六进制),内存地址从低到高(0x00 -> 0x03),到底该怎么存?

模式名称存储规则 (笔记口诀)内存低地址 (0x00)内存高地址 (0x03)典型应用
小端序Little-Endian低低高高
(低位字节存低地址)
78(低位)12(高位)PC 机(x86/ARM)
大端序Big-Endian低高高低
(高位字节存低地址)
12(高位)78(低位)网络标准

核心结论

  1. PC 本地存储通常是小端序(反人类直觉)。
  2. 网络传输标准必须是大端序(符合人类直觉)。
  3. 单字节类型(如char, 字符串)不需要考虑字节序。

二、 代码实战 1:亲眼看看内存里的“倒序”

我们编写一段 C 代码,利用union(共用体)的特性,查看一个整数在内存中真正的字节排列,并演示htonl函数如何将其“修正”。

代码 (endian_view.c)
#include<stdio.h>#include<arpa/inet.h>// 定义一个共用体:允许用两种方式访问同一块内存typedefunion{unsignedintvalue;// 4字节整数unsignedcharbytes[4];// 4字节数组(用于逐字节查看)}MemoryViewer;voidshow_memory(constchar*label,MemoryViewer mv
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/29 14:16:25

MaaYuan代号鸢自动化助手完整配置手册

MaaYuan代号鸢自动化助手完整配置手册 【免费下载链接】MaaYuan 代号鸢 / 如鸢 一键长草小助手 项目地址: https://gitcode.com/gh_mirrors/ma/MaaYuan 作为一名代号鸢玩家&#xff0c;你是否经常面临这样的困扰&#xff1f;每日重复的体力清空、据点挑战、资源收集占据…

作者头像 李华
网站建设 2026/4/19 19:26:27

ChanlunX缠论插件如何实现股票技术分析的自动化识别?

ChanlunX缠论插件如何实现股票技术分析的自动化识别&#xff1f; 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX ChanlunX是一款基于C开发的缠论可视化分析插件&#xff0c;通过算法自动识别K线走势中的笔…

作者头像 李华
网站建设 2026/5/2 16:51:00

明日方舟美术资源终极指南:快速获取高清立绘的完整攻略

明日方舟美术资源终极指南&#xff1a;快速获取高清立绘的完整攻略 【免费下载链接】ArknightsGameResource 明日方舟客户端素材 项目地址: https://gitcode.com/gh_mirrors/ar/ArknightsGameResource 还在为寻找高质量游戏美术资源而烦恼吗&#xff1f;想要快速获取明日…

作者头像 李华
网站建设 2026/4/23 10:18:21

如何用Pytorch实现终极图像去雾?完整教程来了!

如何用Pytorch实现终极图像去雾&#xff1f;完整教程来了&#xff01; 【免费下载链接】DehazeNet_Pytorch A Pytorch implementation for DehazeNet in paper DehazeNet: An End-to-End System for Single Image Haze Removal 项目地址: https://gitcode.com/gh_mirrors/de/…

作者头像 李华
网站建设 2026/4/30 3:37:22

AB下载管理器:5大核心功能彻底解决你的下载管理难题

AB下载管理器&#xff1a;5大核心功能彻底解决你的下载管理难题 【免费下载链接】ab-download-manager A Download Manager that speeds up your downloads 项目地址: https://gitcode.com/GitHub_Trending/ab/ab-download-manager 还在为电脑里散落各处的下载文件而烦恼…

作者头像 李华
网站建设 2026/4/30 13:00:30

JT808协议终极指南:构建高稳定车联网通信平台的完整方案

JT808协议终极指南&#xff1a;构建高稳定车联网通信平台的完整方案 【免费下载链接】jt808-server JT808、JT808协议解析&#xff1b;支持TCP、UDP&#xff0c;实时兼容2011、2013、2019版本协议&#xff0c;支持分包。支持JT/T1078音视频协议&#xff0c;T/JSATL12苏标主动安…

作者头像 李华