网络编程(七)

news/2024/9/23 21:15:49/

网络编程(七)

  • UNIX域套接字(本地间进程间通信的技术)(S文件)
    • 基于TCP传输
    • 基于UDP传输

UNIX域套接字(本地间进程间通信的技术)(S文件)

socket同样也可以用于本地通信(类似:管道,共享内存,消息队列,信号。。。)
效率:共享内存 > UNIX域套接字 > 消息队列 > 管道。。。。
UNIX域套接字不会出现丢包现象,非常安全可靠的!
创建套接字时使用本地协议PF_UNIX(或PF_LOCAL)。
分为流式套接字和用户数据报套接字
和其他进程间通信方式相比使用方便、效率更高
常用于前后台进程通信

在这里插入图片描述
在这里插入图片描述

基于TCP传输

TCP方式创建的unix域套接字通信,类似于无名管道,实现双向通信只需要一个文件(用于两个不相关进程或前后台进程)
在bind阶段才创建s文件

在这里插入图片描述
服务端server:

  1. socket(PF_UNIX,SOCK_STREAM)
  2. bind(struct sockaddr_un)
  3. lisen
  4. accept
  5. IO

在这里插入图片描述
客户端client:

  • socket(PF_UNIX,SOCK_STREAM)
  • connect
  • IO
    在这里插入图片描述
    在这里插入图片描述

基于UDP传输

udp方式的unix域套接字通信,类似于有名管道,实现双向通信需要两个文件

unlink(“hello”); 删除已经存在的套接字文件
服务端(server):创建的aaa套接字文件只是用来收数据,使用客户端创建的bbb文件来发数据

  • socket
  • bind
  • IO

在这里插入图片描述
客户端(client):创建的bbb套接字文件只是用来收数据,使用服务端创建的aaa套接字文件来发数据

  • socket
  • bind
  • IO
    在这里插入图片描述
    在这里插入图片描述
    注意:
    当使用socket()创建通信的套接字时:
    1、传入:AF_INET,客户端可以自己不主动绑定IP和端口,那是系统自己会去bind()
    2、传入:AF_UNIX/AF_LOCAL,客户端这边必须主动bind()它的通信文件addr.sun_path的内容以及addr.sun_family,以此告知服务器,它的通信文件位于本地上的哪一个地方,以后通信就使用该文件来进行数据交互!!!服务器也是一样的,需要bind()!!!

http://www.ppmy.cn/news/1466873.html

相关文章

Vue3 双向绑定

需求&#xff1a;父和子实现双向数据绑定 &#xff08;Vue3.4&#xff09; 单参数实现&#xff1a; 父组件------------------<UserNamev-model:first-name"first"v-model:last-name"last" />子组件&#xff1a;------------<script setup> c…

在Linux/Ubuntu/Debian中使用lshw查看系统信息

在Linux/Ubuntu/Debian中使用lshw查看系统信息 lshw 是一个用于显示硬件配置的命令&#xff0c;可以提供系统硬件的详细信息&#xff0c;包括 CPU、内存、硬盘、主板等。该命令需要超级用户权限来获取详细信息。 常见用法&#xff1a; 显示所有硬件信息&#xff1a; sudo l…

21.过拟合和欠拟合示例

1. 背景介绍 在机器学习和深度学习中&#xff0c;过拟合和欠拟合是两个非常重要的概念。过拟合指的是模型在训练数据上表现很好&#xff0c;但在新的测试数据上效果变差的情况。欠拟合则是指模型无法很好地拟合训练数据的情况。这两种情况都会导致模型无法很好地泛化&#xff…

开发语言Java+前端框架Vue+后端框架SpringBoot开发的ADR药物不良反应监测系统源码 系统有哪些优势?

开发语言Java前端框架Vue后端框架SpringBoot开发的ADR药物不良反应监测系统源码 系统有哪些优势&#xff1f; ADR药物不良反应监测系统具有多个显著的优势&#xff0c;这些优势主要体现在以下几个方面&#xff1a; 一、提高监测效率与准确性&#xff1a; 通过自动化的数据收集…

[ue5]建模场景学习笔记(2)——用vectornoise降低重复率

1.问题分析&#xff1a; 利用改uv的方式降低重复率并不理想&#xff0c;在一定程度上的确能够达到降低重复率的效果&#xff0c;但远看仍然有较清晰的重复效果&#xff0c;尝试优化一下。 2.操作实现&#xff1a; 1.首先先看一下修改后的效果&#xff1a; 这是未修改前&#…

SwiftUI调用相机拍照

在 SwiftUI 中实现拍照功能&#xff0c;需要结合 UIViewControllerRepresentable 和 UIImagePickerController 来实现相机功能。下面是一个详细的示例&#xff0c;展示如何使用 SwiftUI 来实现拍照功能&#xff1a; 1. 创建一个 ImagePicker 组件 首先&#xff0c;创建一个 U…

【从零开始部署SAM(Segment Anything Model )大模型 3 Ubuntu20 离线部署 C++】

这里是目录 总览环境配置模型准备Moble SAM onnx模型获取Moble SAM pre onnx模型获取 运行cmakelist 运行结果 总览 相比于使用python离线部署SAM大模型&#xff0c;C要麻烦的多&#xff0c;本篇的部署过程主要基于项目&#xff1a;https://github.com/dinglufe/segment-anyth…

如何用结构化写好GPT的Prompt提示词

背景 最早接触 Prompt engineering 时, 学到的 Prompt 技巧都是: 你是一个 XX 角色…你是一个有着 X 年经验的 XX 角色…你会 XX, 不要 YY…对于你不会的东西, 不要瞎说!… 对比什么技巧都不用, 直接像使用搜索引擎一样提问, 上面的技巧对于回复的效果确实有着 明显提升. 在看…