news 2026/4/15 7:50:10

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/4/12 0:28:43

Z-Image商业应用指南:云端生成规避版权风险

Z-Image商业应用指南:云端生成规避版权风险 1. 为什么广告公司需要关注AI版权问题 最近两年,越来越多的广告公司开始使用AI工具生成营销素材。但很多团队在兴奋之余,往往忽略了最关键的法律风险问题。去年就有知名品牌因为使用AI生成的素材…

作者头像 李华
网站建设 2026/4/9 2:37:43

VK视频下载神器:一键保存所有精彩内容

VK视频下载神器:一键保存所有精彩内容 【免费下载链接】VK-Video-Downloader Скачивайте видео с сайта ВКонтакте в желаемом качестве 项目地址: https://gitcode.com/gh_mirrors/vk/VK-Video-Downloader …

作者头像 李华
网站建设 2026/4/11 22:13:56

AI+体育教学:篮球动作标准度检测,全校覆盖方案

AI体育教学:篮球动作标准度检测,全校覆盖方案 引言:当AI遇见篮球训练 想象一下体育老师在篮球课上不再需要凭经验逐个纠正学生的投篮姿势,而是通过手机拍摄视频就能自动生成每个学生的动作分析报告。这就是AI骨骼关键点检测技术…

作者头像 李华
网站建设 2026/4/11 4:25:21

API集成方案:淘宝多店铺管理,统一运营!

导语: 管理多个淘宝店铺时,你是否面临数据分散、操作重复、效率低下的困境?手动同步库存、逐个店铺处理订单、分散的营销活动策划...不仅耗时耗力,还容易出错。本文将探讨如何通过API集成,构建一套高效的多店铺统一运营…

作者头像 李华
网站建设 2026/4/12 22:58:29

3DTiles的构建和加载方案

当三维重建完的模型很大时,一次性加载时会很消耗内存。 为了解决这个问题,工程上通常采用3D Tiles来实现模型分块层级加载。 本文将介绍一种3D Tiles的构建和加载方案。 3D Tiles简介 3D Tiles 是一种面向大规模三维地理空间数据的开放数据标准&#xff…

作者头像 李华
网站建设 2026/4/12 0:37:39

Z-Image-ComfyUI省钱攻略:按需付费比买显卡省90%

Z-Image-ComfyUI省钱攻略:按需付费比买显卡省90% 引言:自由插画师的AI创作困境 作为一名自由插画师,你可能经常遇到这样的困扰:客户需求时多时少,有时一周要完成好几张作品,有时又连续几天没有任务。当你…

作者头像 李华