`AF_UNIX` 和 `AF_LOCAL`

简介: `AF_UNIX` 和 `AF_LOCAL`

AF_UNIXAF_LOCAL 在计算机网络编程中都是指同一种类型的地址家族,它们被用来创建和管理UNIX域套接字(Unix Domain Sockets)。在不同的系统或标准文档中,可能会使用这两个名称中的任意一个来表示同一概念。

UNIX域套接字 主要用于同一台操作系统中的进程间通信(IPC),不同于基于网络的套接字如 AF_INET(用于IPv4)或 AF_INET6(用于IPv6),它并不通过网络进行数据交换,而是利用了操作系统的内核机制,在进程之间直接传递数据。

当在调用 socket() 函数创建套接字时,可以选择 AF_UNIXAF_LOCAL 作为第一个参数 domain,这表明你将创建的是一个用于本地进程间通信的套接字。

另外,PF_UNIXPF_LOCAL 通常与 AF_UNIXAF_LOCAL 是等价的,只是在某些系统中可能作为另一种表述方式出现。在POSIX兼容的系统中,PF_* 常常作为与 AF_* 对应的协议家族标识符使用,尽管在实践中二者在UNIX域套接字的情况下可互换。

UNIX域套接字可以是:

  • SOCK_STREAM 类型,提供一种有序、可靠、双向全双工的连接,类似于TCP。
  • SOCK_DGRAM 类型,提供无连接、不可靠的消息服务,类似于UDP,但即使在 SOCK_DGRAM 模式下,UNIX域套接字仍然保证消息边界,即发送的小块数据不会像网络UDP那样被重组。

这种套接字的地址结构是 sockaddr_un,其中可以包含一个文件系统路径(命名套接字)或是一个在内核中创建的匿名套接字对(由 socketpair() 函数创建)。由于数据传输发生在本地,不需要网络协议栈处理,所以相比网络套接字,UNIX域套接字具有更快的速度和更低的开销。

目录
相关文章
|
监控 Linux
Linux 进程标识符:深入探讨 getpid() 和 getppid()
在Linux操作系统中,进程管理是一项重要的任务。为了正确管理和监控进程,我们需要了解如何获取进程的标识符。本文将详细介绍两个重要的Linux系统调用函数:`getpid()`和`getppid()`。这两个函数用于获取当前进程的进程ID(PID)和父进程的PID。我们将深入探讨它们的用途、使用方法以及示例代码。
3692 0
|
9月前
|
Unix Linux C语言
在Linux下通过Socket实现本机进程间通信
这些代码块提供了一个基本的IPC通信模型,可以用作更复杂应用程序的基础。要根据特定需求扩展这些代码,您可能需要考虑错误处理、多线程或多进程并发处理、以及消息编码策略。
540 17
|
测试技术 Linux 调度
你必须知道的Docker资源限制
本文探索了Docker的资源限制相关知识,在日常开发中应该给容器设置一个合理的资源限制值,以防出现OOME的情况导致Linux杀掉错误的进程。
3300 0
|
安全 Linux iOS开发
Nmap 使用指南:安装、优缺点及备忘单
【8月更文挑战第20天】
4144 0
|
物联网 API 数据库
一文带你认识蓝牙 GATT 协议
正所谓磨刀不误砍柴工,我们有必要先深入的学习一下 GATT 以及 GATT 相关的一些知识。 本文我们就来了解一下 蓝牙 GATT 到底是什么?同时了解下我们使用的 ESP32-C3 GATT示例的工程的代码结构。
10056 5
一文带你认识蓝牙 GATT 协议
|
安全 Unix Linux
VMware Workstation 17.6.3 发布下载,现在完全免费无论个人还是商业用途
VMware Workstation 17.6.3 发布下载,现在完全免费无论个人还是商业用途
158689 65
|
网络协议 物联网 开发者
详细介绍 MQTT 的工作原理,包括 MQTT 协议的特点、核心概念以及消息传递的流程
详细介绍 MQTT 的工作原理,包括 MQTT 协议的特点、核心概念以及消息传递的流程
9457 1
|
安全 Linux 网络安全
【工具使用】几款优秀的SSH连接客户端软件工具推荐FinalShell、Xshell、MobaXterm、OpenSSH、PUTTY、Terminus、mRemoteNG、Terminals等
【工具使用】几款优秀的SSH连接客户端软件工具推荐FinalShell、Xshell、MobaXterm、OpenSSH、PUTTY、Terminus、mRemoteNG、Terminals等
151307 0

热门文章

最新文章