news 2026/7/24 3:48:54

Socket 编程利器:深入解析 `inet_pton` 函数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Socket 编程利器:深入解析 `inet_pton` 函数

一、 为什么要用inet_pton

在网络通信中,IP 地址在代码里其实是一个整数(二进制)。

  • 人类视角:点分十进制字符串,例如"192.168.1.1"
  • 机器视角:32位的大端整数,例如0xC0A80101

inet_pton的作用就是充当翻译官:它不仅能把字符串转成整数,还能自动处理字节序(直接转为网络大端序),并且同时支持 IPv4 和 IPv6。

注:函数名中的p代表 Presentation(显示/文本),n代表 Network(网络/数值),to代表转换。


二、 函数解剖室

在使用前,我们需要了解它的详细规格:

头文件

#include<arpa/inet.h>// 这个头文件包含了所有 Socket 核心 API,同时也包含了 sys/socket.h

函数原型

intinet_pton(intaf,constchar*src,void*dst);

参数详解

  1. af(Address Family):协议族。
    • AF_INET:表示 IPv4。
    • AF_INET6:表示 IPv6。
  2. src(Source):传入参数。
    • 指向包含 IP 地址字符串的指针(例如"127.0.0.1")。
    • const修饰,保证函数内部不会修改你的字符串。
  3. dst(Destination):传出参数。
    • 指向一块内存区域,用来存放转换后的结果。
    • 对于 IPv4,通常指向struct sockaddr_in结构体中的sin_addr成员。

返回值(重点!需背诵)

  • 1:成功。
  • 0:输入格式无效(例如传了"192.168.1.999"这种非法 IP)。
  • -1:协议族af不正确(此时会设置errno错误码)。

三、 代码实战 1:标准 IPv4 转换

我们来看一个最典型的用法:将字符串写入到套接字地址结构体中。

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

MemTorch实战指南:构建高性能忆阻器神经网络仿真系统

MemTorch实战指南&#xff1a;构建高性能忆阻器神经网络仿真系统 【免费下载链接】MemTorch A Simulation Framework for Memristive Deep Learning Systems 项目地址: https://gitcode.com/gh_mirrors/me/MemTorch 内容速览 MemTorch作为基于PyTorch的忆阻器深度学习仿…

作者头像 李华
网站建设 2026/7/22 0:24:59

XV3DGS-UEPlugin实战指南:解锁UE5高斯泼溅渲染新境界

XV3DGS-UEPlugin实战指南&#xff1a;解锁UE5高斯泼溅渲染新境界 【免费下载链接】XV3DGS-UEPlugin 项目地址: https://gitcode.com/gh_mirrors/xv/XV3DGS-UEPlugin 还在为3D模型渲染的复杂流程而烦恼吗&#xff1f;想象一下&#xff0c;只需几个简单步骤就能在Unreal …

作者头像 李华
网站建设 2026/7/15 0:06:14

如何快速掌握BongoCat:新手小白的完整使用指南

如何快速掌握BongoCat&#xff1a;新手小白的完整使用指南 【免费下载链接】BongoCat 让呆萌可爱的 Bongo Cat 陪伴你的键盘敲击与鼠标操作&#xff0c;每一次输入都充满趣味与活力&#xff01; 项目地址: https://gitcode.com/gh_mirrors/bong/BongoCat 想要让单调的电…

作者头像 李华
网站建设 2026/7/18 19:53:31

用CRNN OCR节省70%人工录入成本:企业级部署方案

用CRNN OCR节省70%人工录入成本&#xff1a;企业级部署方案 背景与业务痛点&#xff1a;OCR文字识别的现实挑战 在企业日常运营中&#xff0c;大量非结构化文档&#xff08;如发票、合同、物流单据、身份证件&#xff09;需要转化为可处理的文本数据。传统的人工录入方式不仅效…

作者头像 李华
网站建设 2026/7/17 17:20:18

CRNN在物流行业的应用:运单自动识别系统

CRNN在物流行业的应用&#xff1a;运单自动识别系统 &#x1f4d6; 项目背景与行业痛点 在现代物流体系中&#xff0c;每日产生海量的纸质运单、快递面单和电子回执。传统的人工录入方式不仅效率低下&#xff08;平均每单耗时30秒以上&#xff09;&#xff0c;且错误率高达5%-8…

作者头像 李华
网站建设 2026/7/17 14:49:25

XV3DGS-UEPlugin终极指南:5步实现高斯泼溅模型的UE5实时渲染革命

XV3DGS-UEPlugin终极指南&#xff1a;5步实现高斯泼溅模型的UE5实时渲染革命 【免费下载链接】XV3DGS-UEPlugin 项目地址: https://gitcode.com/gh_mirrors/xv/XV3DGS-UEPlugin 在当今计算机图形学领域&#xff0c;高斯泼溅模型正以其革命性的渲染效果改变着三维重建的…

作者头像 李华