news 2026/4/23 17:24:57

彻底搞懂网络编程中的“字节序”与 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/23 14:01:42

PoE2构建神技:Path of Building完全解析与实战秘籍

PoE2构建神技&#xff1a;Path of Building完全解析与实战秘籍 【免费下载链接】PathOfBuilding-PoE2 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding-PoE2 还在为《流放之路2》复杂的角色构建而烦恼吗&#xff1f;你是否曾经投入大量时间打造的角色…

作者头像 李华
网站建设 2026/4/23 15:25:44

避不开的坑:MGeo生产环境部署中的5个注意事项

避不开的坑&#xff1a;MGeo生产环境部署中的5个注意事项 作为一位经历过多次AI模型部署的DevOps工程师&#xff0c;我深知将MGeo这类地理文本处理模型投入生产环境时的忐忑。地址相似度匹配、行政区划识别这些功能在测试环境跑得欢&#xff0c;一旦上线就可能遇到各种"惊…

作者头像 李华
网站建设 2026/4/23 8:54:50

星露谷农场规划器终极指南:从零开始打造完美高效农场

星露谷农场规划器终极指南&#xff1a;从零开始打造完美高效农场 【免费下载链接】stardewplanner Stardew Valley farm planner 项目地址: https://gitcode.com/gh_mirrors/st/stardewplanner 还在为星露谷农场的杂乱布局而烦恼吗&#xff1f;作物种植位置不合理、洒水…

作者头像 李华
网站建设 2026/4/22 15:47:39

websocket竞争并发测试代码(turbo_intruder)

websocket_turbo_intruder.py import websocket import json import threading import time import ssl from queue import Queue import random#基础消息模板 base_message = {"role": "client","type": "chat","send_timestam…

作者头像 李华
网站建设 2026/4/23 8:59:47

IDR逆向分析工具实战指南:从入门到精通

IDR逆向分析工具实战指南&#xff1a;从入门到精通 【免费下载链接】IDR Interactive Delphi Reconstructor 项目地址: https://gitcode.com/gh_mirrors/id/IDR 你是否遇到过需要分析Delphi编译程序却无从下手的困境&#xff1f;IDR作为专业的Delphi逆向工程工具&#x…

作者头像 李华