news 2026/1/30 2:13:06

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/1/27 22:23:47

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

各类资料学习下载合集 链接:https://pan.quark.cn/s/7c8c391011eb 一、 为什么必须 Bind? 在 TCP 通信中,服务器的角色就像是一家实体店。 Socket:相当于你注册了营业执照。 Bind:相当于你租下了一个具体的门面(IP + 端口)。 如果你不开店(不 Bind),虽然你也可以去…

作者头像 李华
网站建设 2026/1/28 19:09:33

老年人防跌倒系统:骨骼点检测云端方案,月成本<500

老年人防跌倒系统:骨骼点检测云端方案,月成本<500 引言:为什么选择云端骨骼点检测? 社区服务中心在为老年人提供智能看护服务时,常常面临两大难题:一是采购服务器硬件成本高且维护复杂&#x…

作者头像 李华
网站建设 2026/1/26 18:11:49

AI手势识别如何应对复杂背景?抗干扰部署实战

AI手势识别如何应对复杂背景?抗干扰部署实战 1. 引言:AI 手势识别与追踪的现实挑战 随着人机交互技术的不断演进,AI手势识别正逐步从实验室走向消费级应用——无论是智能车载控制、AR/VR交互,还是无接触式操作场景,精…

作者头像 李华
网站建设 2026/1/26 7:08:18

MediaPipe Hands企业方案:会议手势控制系统设计

MediaPipe Hands企业方案:会议手势控制系统设计 1. 引言:AI 手势识别与追踪的商业价值 随着智能交互技术的发展,非接触式人机交互正逐步成为企业级应用的重要方向。尤其在远程会议、智能展厅、工业控制等场景中,传统鼠标键盘或触…

作者头像 李华
网站建设 2026/1/28 17:50:47

Mac百度网盘3步极速下载方案:告别限速困扰的技术指南

Mac百度网盘3步极速下载方案:告别限速困扰的技术指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 你是否曾经在macOS上使用百度网盘时&a…

作者头像 李华
网站建设 2026/1/29 18:45:36

没N卡也能畅玩:Z-Image跨平台云端方案

没N卡也能畅玩:Z-Image跨平台云端方案 引言:AMD用户的AI绘画困境 作为一名AMD显卡用户,你是否经常遇到这样的尴尬:看到朋友圈里NVIDIA用户晒出各种炫酷的AI生成图像,而自己尝试按照教程操作时,却总是卡在…

作者头像 李华