当前位置: 首页 > article >正文

UNIX 域套接字

UNIX 域套接字(UNIX Domain Socket,简称 UDS)是一种在同一台机器上的进程间通信(IPC,Inter-Process Communication)机制,允许不同的进程通过文件系统中的特殊文件进行数据交换,而不需要通过网络协议栈。这使得 UNIX 域套接字在本地通信中比传统的 TCP/IP 套接字更高效。
UNIX 域套接字的特点
本地通信:UNIX 域套接字仅限于同一台机器上的进程之间的通信。它不涉及网络层的协议,因此通信延迟较低,效率较高。
基于文件系统:UNIX 域套接字使用文件系统中的特殊文件(通常是以 .socket 为扩展名的文件)作为通信的端点。这些文件通常位于 /tmp 或 /var/run 等目录下。
流式数据:和 TCP 套接字类似,UNIX 域套接字也支持面向流的通信(SOCK_STREAM),以及无连接的报文通信(SOCK_DGRAM)。

创建套接字时使用本地协议PF_UNIX(或PF_LOCAL)。
socket(AF_LOCAL, SOCK_STREAM, 0)
socket(AF_LOCAL, SOCK_DGRAM, 0)

本地地址结构
struct sockaddr_un // <sys/un.h>
{
sa_family_t sun_family;
char sun_path[108]; // 套接字文件的路径
};

填充地址结构
struct sockaddr_un myaddr;
bzero(&myaddr, sizeof(myaddr));
myaddr.sun_family = AF_UNIX;
strcpy(myaddr.sun_path, “/tmp/mysocket”);


http://www.kler.cn/a/393343.html

相关文章:

  • 什么岗位需要学习 OpenGL ES ?说说 3.X 的新特性
  • LLMs 如何处理相互矛盾的指令?指令遵循优先级实验
  • 【数据结构与算法】第11课—数据结构之选择排序和交换排序
  • 第74期 | GPTSecurity周报
  • 使用 Visual Studio Installer 彻底卸载 Visual Studio方法与下载
  • 【深度解析】CSS工程化全攻略(1)
  • 【3D Slicer】的小白入门使用指南四
  • AIoT的协同计算
  • 解锁数据世界:从基础到精通的数据库探索之旅
  • Unity URP自定义后处理系统
  • SQL:给数据表字段拼接字符串
  • HarmonyOS和OpenHarmony区别是什么?鸿蒙和安卓IOS的区别是什么?
  • 除了防盗,特力康智能窨井盖还能监测井下环境吗?具体都监测些什么?
  • A029-基于Spring Boot的物流管理系统的设计与实现
  • 【Chapter 3】Machine Learning Classification Case_Prediction of diabetes-XGBoost
  • AI写作(四)预训练语言模型:开启 AI 写作新时代(4/10)
  • docker desktop es windows解决vm.max_map_count [65530] is too low 问题
  • CSS: Clearing Floats with Overflow
  • vue3项目初始化完整流程,vue3+TypeScript+vue-router+pinia+element-plus+axios+unocss+mock
  • SQL 外连接
  • 【go从零单排】Regular Expressions正则表达式
  • 【秋招笔试-支持在线评测】11.13花子秋招(已改编)-三语言题解
  • Elasticsearch专栏-4.es基本用法-查询api
  • 【软件测试】白盒、黑盒、灰盒测试,按照测试阶段分类
  • Blender进阶:颜色节点
  • 使用 unicorn 和 capstone 库来模拟 ARM Thumb 指令的执行(一)