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

进程间通信——网络通信——UDP

进程间通信(分类):网络通信、无名管道、有名管道、信号、消息队列、共享内存、信号量集

OSI七层模型:(理论模型)

应用层 :  要传输的数据信息,如文件传输,电子邮件等
表示层 :  数据加密,解密操作,压缩,解压缩
会话层 :  建立数据传输通道
传输层 :  传输的方式  UDP  TCP   端口号
网络层 :  实现数据路由    路由器  ip
数据链路层 :  封装成帧,点对点通信(局域网内通信),差错检测   交换机  ARP
物理层 :  定义物理设备标准,比如网线,光纤等传输介质   比特流  bit  0 1

TCP/IP四层模型:(工业生产)

应用程:HTTP, HTTPS(超文本传输协议) (基于TCP)
              FTP : 文件传输协议(基于TCP)
              TFTP:简单文件传输协议(基于UDP)
              MQTT: 消息遥测传输协议(物联网)
              DNS :域名解析服务 

传输层:UDP : 用户数据报协议    面向数据包
              TCP:传输控制协议       面向数据流
网络层:IPv4、IPv6
网络接口层:ARP:地址解析协议

标记主机:
MAC:硬件地址 : 局域网通信
IP:软件地址

端口号:同一主机,区分不同的网络进程
           2字节的无符号整形数据
            0-65535

ARP:地址解析协议
网络层:IP协议:IPv4:32bits
                             IPv6:128bits

点分十进制:192.168.1.148
网络配置:

1.虚拟机——>设置——>网络适配器——>桥接方式

2.编辑——>虚拟网络编辑器——>更改设置——>VMnet0——>桥接模式——>桥接到电脑正在上网的网卡——>应用——>确定

3.修改配置文件: sudo vim /etc/network/interfaces

4.重启网络配置: sudo /etc/init.d/networking restart

5.测试       ifconfig (查看虚拟机的IP地址)     ping www.baidu.com

网络通信模型:B/S : Browser——>Server
                                    1. 通用的客户端

                         C/S : Client-----》Server
                                   1. 专用的客户端
                                   2.  客户端也可保存资源

int socket(int domain, int type, int protocol);
    功能:创建一个通讯的套接字
    参数:
         domain: 网络协议族
              AF_INET:   IPv4
              AF_INET6: IPv6
         type: 表示传输层协议类型
             SOCK_STREAM:   tcp
             SOCK_DGRAM:    udp

        protocol:
                0 : 默认普通正常模式

  成功:文件描述符
  失败:-1

ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,
                        const struct sockaddr *dest_addr, socklen_t addrlen);

   功能:向目标地址发送数据
   参数:
            sockfd:通讯套接字
            buf:要发送的数据内容首地址
            len : 内容字节数
            flags : 0:默认方式发送
            dest_addr:数据接收方的地址
            addrlen:接收方的地址大小

   返回值:
           成功:实际发送的字节数
           失败:-1

 int bind(int sockfd, const struct sockaddr *addr,socklen_t addrlen);

    功能:绑定套接字和自己的地址信息
    参数:
           sockfd:套接字
           addr : 自己的地址信息
           addrlen:地址的大小
   返回值:
         成功:0
         失败:-1

ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,struct sockaddr *src_addr, socklen_t *addrlen);
    功能:接收udp发送的数据
    参数:
           sockfd:接收数据的套接字
           buff:保存接收数据的首地址
           len:期待收到的字节数
           flags:0:默认方式接收
           src_addr: 保存发送发地址信息的空间首地址
           addrlen:发送方地址信息大小的首地址

   返回值:
        成功:返回实际收到的字节数
        失败:-1

网络字节序:大端
主机字节序:小端

htons: 将主机字节序(小端)的short类型转换成网络字节序(大端)
htonl: 将主机字节序(小端)的long类型转换成网络字节序(大端)
ntohs:将网络字节序转换成主机字节序

inet_ntoa():将二进程整形ip转换成字符串ip
inet_addr() : 将字符串ip转换成网络字节序的二进制ip

相关文章:

进程间通信——网络通信——UDP

进程间通信(分类):网络通信、无名管道、有名管道、信号、消息队列、共享内存、信号量集 OSI七层模型:(理论模型) 应用层 : 要传输的数据信息,如文件传输,电子邮件等 表示层 : 数…...

【我的 PWN 学习手札】IO_FILE 之 FSOP

FSOP:File Stream Oriented Programming 通过劫持 _IO_list_all 指向伪造的 _IO_FILE_plus,进而调用fake IO_FILE 结构体对象中被伪造的vtable指向的恶意函数。 目录 前言 一、glibc-exit函数浅析 二、FSOP 三、Largebin attack FSOP (…...

新兴的开源 AI Agent 智能体全景技术栈

新兴的开源 AI Agent 智能体全景技术栈 LLMs:开源大模型嵌入模型:开源嵌入模型模型的访问和部署:Ollama数据存储和检索:PostgreSQL, pgvector 和 pgai后端:FastAPI前端:NextJS缺失的一环:评估和…...

统计学习方法(第二版) 概率分布学习

本文主要介绍机器学习的概率分布,帮助后续的理解。 定义直接从书上搬的想自己写,但没有定义准确,还浪费事件,作为个人笔记,遇到速查。 目录 一、二点分布(0-1分布、伯努利分布) 二、二项分布…...

淺談Cocos2djs逆向

前言 簡單聊一下cocos2djs手遊的逆向,有任何相關想法歡迎和我討論^^ 一些概念 列出一些個人認為比較有用的概念: Cocos遊戲的兩大開發工具分別是CocosCreator和CocosStudio,區別是前者是cocos2djs專用的開發工具,後者則是coco…...

【ROS2】RViz2加载URDF模型文件

1、RViz2加载URDF模型文件 1)运行RViz2 rviz22)添加组件:RobotModel 3)选择通过文件添加 4)选择URDF文件,此时会报错,需要修改Fixed Frame为map即可 5)因为没有坐标转换,依然会报错,下面尝试解决 2、运行坐标转换节点 1)运行ROS节点:robot_state_publishe...

Unity导入特效,混合模式无效问题

检查spine导出设置与Unity导入设置是否一致 检查Blend Mode Materials是否勾选 检查是否使用导入时产生的对应混合模式的材质,混合模式不适用默认材质 这里选导入时生成的材质...

el-table自定义按钮控制扩展expand

需求:自定义按钮实现表格扩展内容的展开和收起,实现如下: 将type“expand”的表格列的宽度设置为width"1",让该操作列不展示出来,然后通过ref动态调用组件的内部方法toggleRowExpansion(row, row.expanded)控…...

opencv CV_TM_SQDIFF未定义标识符

opencv CV_TM_SQDIFF未定义标识符 opencv4部分命名发生变换,将CV_WINDOW_AUTOSIZE改为WINDOW_AUTOSIZE;CV_TM_SQDIFF_NORMED改为TM_SQDIFF_NORMED。...

2024acl论文体悟

总结分析归纳 模型架构与训练方法:一些论文关注于改进大语言模型的架构和训练方法,以提高其性能和效率。例如,“Quantized Side Tuning: Fast and Memory-Efficient Tuning of Quantized Large Language Models”提出了一种量化侧调优方法&a…...

【Git原理与使用】版本回退reset 详细介绍、撤销修改、删除文件

目录 一、版本回退 reset 1.1 指令: 1.2 参数说明: 1.3 演示: 二、撤销修改 情况一:对于工作区的代码,还没有 add 情况二:已经 add ,但没有 commit 情况三:已经 add &…...

反规范化带来的数据不一致问题的解决方案

在数据库设计中,规范化(Normalization)和反规范化(Denormalization)是两个相互对立但又不可或缺的概念。规范化旨在消除数据冗余,确保数据的一致性和准确性,但可能会降低查询效率。相反&#xf…...

【Android】直接使用binder的transact来代替aidl接口

aidl提供了binder调用的封装,有的时候,比如: 1. 懒得使用aidl生成的接口文件(确实是懒,Android studio中aidl生成接口文件很方便) 2. 服务端的提供者只公开了部分接口出来,只给了调用编号和参…...

Python机器学习笔记(十八、交互特征与多项式特征)

添加原始数据的交互特征(interaction feature)和多项式特征(polynomial feature)可以丰富特征表示,特别是对于线性模型。这种特征工程可以用统计建模和许多实际的机器学习应用中。 上一次学习:线性模型对w…...

《跟我学Spring Boot开发》系列文章索引❤(2025.01.09更新)

章节文章名备注第1节Spring Boot(1)基于Eclipse搭建Spring Boot开发环境环境搭建第2节Spring Boot(2)解决Maven下载依赖缓慢的问题给火车头提提速第3节Spring Boot(3)教你手工搭建Spring Boot项目纯手工玩法…...

【AI进化论】 如何让AI帮我们写一个项目系列:将Mysql生成md文档

一、python脚本 下面给出一个简易 Python 脚本示例,演示如何自动获取所有表的结构,并生成一份 Markdown 文件。你可根据自己的需求做修改或使用其他编程语言。 import mysql.connector# ------------------------ # 1. 连接数据库 # -----------------…...

(已开源-AAAI25) RCTrans:雷达相机融合3D目标检测模型

在雷达相机融合三维目标检测中,雷达点云稀疏、噪声较大,在相机雷达融合过程中提出了很多挑战。为了解决这个问题,我们引入了一种新的基于query的检测方法 Radar-Camera Transformer (RCTrans)。具体来说: 首先设计了一个雷达稠密…...

Elasticsearch:在 HNSW 中提前终止以实现更快的近似 KNN 搜索

作者:来自 Elastic Tommaso Teofili 了解如何使用智能提前终止策略让 HNSW 加快 KNN 搜索速度。 在高维空间中高效地找到最近邻的挑战是向量搜索中最重要的挑战之一,特别是当数据集规模增长时。正如我们之前的博客文章中所讨论的,当数据集规模…...

unittest VS pytest

以下是 unittest 和 pytest 框架的对比表格: 特性unittestpytest设计理念基于类的设计,类似于 Java 的 JUnit更简洁,基于函数式编程设计,支持类和函数两种方式测试编写需要继承 unittest.TestCase 类,方法以 test_ 开…...

Tableau数据可视化与仪表盘搭建-基础图表制作

目录 对比分析:比大小 柱状图 条形图 数据钻取 筛选器 热力图 气泡图 变化分析:看趋势 折线图 预测 面积图 关系分布:看位置 散点图 直方图 地图 构成分析:看占比 饼图 树地图 堆积图 对比分析:比大…...

ReTerraForged终极指南:5步打造专业级Minecraft地形生成体验

ReTerraForged终极指南:5步打造专业级Minecraft地形生成体验 【免费下载链接】ReTerraForged TerraForged for modern MC versions 项目地址: https://gitcode.com/gh_mirrors/re/ReTerraForged ReTerraForged是一款专为现代Minecraft版本设计的革命性地形生…...

别急着升级Android Studio!手把手教你降级AGP 8.3.0-alpha01到8.1.3,解决版本不兼容报错

别急着升级Android Studio!手把手教你降级AGP 8.3.0-alpha01到8.1.3,解决版本不兼容报错 接手一个Kotlin项目时,最令人头疼的莫过于刚打开就遭遇版本不兼容的红色报错。尤其当错误提示显示"项目使用了不兼容的Android Gradle插件版本(A…...

如何提升区域科技创新服务效率与资源整合能力?

观点作者:科易网-国家科技成果转化(厦门)示范基地现状概述:区域科技创新服务的成效与短板 在数智化转型加速的背景下,区域科技创新服务体系正经历深刻变革。以数据为核心的生产要素重塑了创新生态,科技成果…...

终极指南:5分钟掌握XUnity自动翻译器,轻松实现Unity游戏汉化

终极指南:5分钟掌握XUnity自动翻译器,轻松实现Unity游戏汉化 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 还在为看不懂的日语游戏剧情而烦恼吗?面对满屏英文的游戏界…...

昇腾CANN ascend-boost-comm:M×N 算子复用是怎么做到的

CANN 生态里 50 多个仓库,每个仓库有十几到几十个算子。这些算子之间存在大量公共功能:内存搬运算子需要数据切分、通信算子需要拓扑发现、融合算子需要 shape 推导。如果每个仓库各自实现一遍,代码膨胀的同时,任何一个公共功能的…...

多 Harness Control Plane 如何重塑企业云 Agent 架构

Agent 规模化部署的真正瓶颈不是模型,而是 Harness 选择与治理 在生产环境中,工程领导者决定今年要把云 Agent 推到全团队规模:代码迁移、大型特性构建、生产部署、日常运维全线自动化。可一旦真正落地,第一个卡住的永远不是模型能…...

FPSoC芯片如何重塑嵌入式设计?SF1系列实战解析

1. 项目概述:一颗芯片如何重塑嵌入式设计的边界?最近,业内朋友都在讨论安路科技新推出的SF1系列FPSoC产品。作为一名在嵌入式领域摸爬滚打了十几年的老工程师,我第一眼看到这个“FPSoC”的命名,就嗅到了一丝不同寻常的…...

QEMU理解与分析系列(16):QEMU启动方式分析

QEMU启动方式分析启动流程RISC-V specific│┌──────────────────┼──────────────────┐▼ ▼ ▼┌──────────────┐ ┌──────────────┐ ┌───────────…...

告别枯燥理论!用Quartus II和LPM_ROM手把手带你玩转FPGA正弦波音乐盒

用FPGA演奏音乐:基于Quartus II的数字音乐盒实战指南 当技术遇上艺术,冰冷的电路也能唱出温暖的旋律。今天我们将打破传统FPGA实验的刻板印象,用一块开发板和几行代码,打造一个会唱歌的数字音乐盒。这不是普通的波形发生器&#x…...

效率翻倍!OrCAD Capture CIS创建复杂元器件库的实战技巧:LM358与多Part器件管理

效率翻倍!OrCAD Capture CIS创建复杂元器件库的实战技巧:LM358与多Part器件管理 在电子设计领域,元器件库的管理水平直接影响设计效率。许多工程师在使用OrCAD Capture CIS时,面对LM358这类多Part器件或更复杂的异构元件时&#x…...