共享内存、网络

2024-08-22 04:20
文章标签 网络 共享内存

本文主要是介绍共享内存、网络,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  1. 共享内存:

  2. 1、是一块内核预留的空间
  3. 2、最高效的通信方式(避免了用户空间到内核空间的数据拷贝)
  4. 网络

  5. 一、IP地址

是网络中主机的唯一标识,它由网络地址和主机号组成。网络地址是子网的唯一标识,类似于电话号码的区号;主机号是子网内每台主机的编号。在现在(IPv4)的网络中,IP地址是32bit的二进制数,采用大端字节序:

  1. 表示方法: 将32位二进制码划分为4个字节,每个字节转化成相应的十进制数,字节之间用“.”来分隔,这种表示方法,称之为“点分十进制表示法”。

    类型

    范围

    用途

    A类

    0.x.x.x---127.x.x.x.x

    10.x.x.x

    私网(局域网)地址

    127.x.x.x

    环回网络地址

    其他

    大型主干网地址

    B类

    128.x.x.x - 191.x.x.x

    172.16.x.x - 172.31.x.x

    私网(局域网)地址

    169.254.x.x

    表示没有找到DHCP服务器

    其他

    主干(城市)网地址

    C类

    192.x.x.x - 223.x.x.x

    192.168.x.x

    私网(局域网)地址

    D类

    组播地址

    E类

    保留

  2. 2.子网掩码            3.网关
  3. 二、网络编程

  4. Open System Interconnect (OSI网络模型)
  5. osi参考模型 
         
  6. 1. 物理层 
           规定了物理层面的电气特性及相关机械特性 。( 物理层面数据的传输 ---  一位一位二进制数据   //比特流 )
    2. 数据链路层 
           规定了 传输数据的格式  //帧数据 
           //控制传输过程可靠
  7.  3. 网络层 (网际层)
  8.        用于解决 网络 与 网络之间 数据传输  //数据包 
      4. 传输层 
           传输控制层,控制传输过程,保证数据完整和可靠 
      5. 会话层  
           处理一次会话过程 
        6. 表示层 
           规定了 传输数据的格式 和 方式  //加密 
        7. 应用层 
           就是直接获取要收发的数据    
  9.    实际应用到的是 tcp/ip 模型 
  10. 三、协议——每个层次中,都有自己的一套规范

  11. 1、TCP

  12. 即传输控制协议:是一种面向连接的传输层协议,它能提供高可靠性通信(即数

  13. 据无误、数据无丢失、数据无失序、数据无重复到达的通信)

    * 适用情况:
    1. 适合于对传输质量要求较高,以及传输大量数据
    的通信。
    2. 在需要可靠数据传输的场合,通常使用TCP协议
    3. QQ等即时通讯软件的用户登录账户管理相关
    的功能通常采用TCP协议

    tcp协议特点:
    1. 面向连接   //类似打电话通话之前 ,必须先打通 
    2. 可靠传输   //保证数据准确可靠 (tcp协议机制 里面的功能 )
    3. 面向字节流程

  14. 2、UDP

  15. (User Datagram Protocol)用户数据报协议,是不可靠的无连接的协议。
    在数据发送前,因为不需要进行连接,所以可以进行高效率的数据传输。

    * 适用情况:
    1. 发送小尺寸数据(如对DNS服务器进行IP地址查询时)
    2. 在接收到数据,给出应答较困难的网络中使用UDP。(如:无
    线网络)
    3. 适合于广播/组播式通信中。
    4. MSN/QQ/Skype等即时通讯软件的点对点文本通讯以及音视频通
    讯通常采用UDP协议
    5. 流媒体、VOD、VoIP、IPTV等网络多媒体服务中通常采用UDP
    方式进行实时数据传输


    UDP特点: 
    1.不可靠 
    2.无连接 
    3.数据报  

  16. 3.编程模型 
     int socket(int domain, int type, int protocol);

  17. 功能:程序向内核提出创建一个基于内存的套接字描述符     

  18.  ssize_t sendto(    int sockfd,  //用于通信的socket对应的fd
                      const void *buf,  //表示要发送的数据所在的一块空间 
                           size_t len,  //表示发送的字节数 
                            int flags,  //0  --- 默认  
     const struct sockaddr *dest_addr,  //表示 要发送到的 地址 (网络地址 ip+端口号 ) 
                    socklen_t addrlen   //表示dest_addr 这个参数的长度 
                    );
  19. struct sockaddr_in {
                   sa_family_t    sin_family; 
                   in_port_t      sin_port;    (网络转主机:host to net) 
                   struct in_addr sin_addr; };

                

这篇关于共享内存、网络的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1095220

相关文章

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

SpringBoot使用OkHttp完成高效网络请求详解

《SpringBoot使用OkHttp完成高效网络请求详解》OkHttp是一个高效的HTTP客户端,支持同步和异步请求,且具备自动处理cookie、缓存和连接池等高级功能,下面我们来看看SpringB... 目录一、OkHttp 简介二、在 Spring Boot 中集成 OkHttp三、封装 OkHttp

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

使用Python高效获取网络数据的操作指南

《使用Python高效获取网络数据的操作指南》网络爬虫是一种自动化程序,用于访问和提取网站上的数据,Python是进行网络爬虫开发的理想语言,拥有丰富的库和工具,使得编写和维护爬虫变得简单高效,本文将... 目录网络爬虫的基本概念常用库介绍安装库Requests和BeautifulSoup爬虫开发发送请求解

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为

SSID究竟是什么? WiFi网络名称及工作方式解析

《SSID究竟是什么?WiFi网络名称及工作方式解析》SID可以看作是无线网络的名称,类似于有线网络中的网络名称或者路由器的名称,在无线网络中,设备通过SSID来识别和连接到特定的无线网络... 当提到 Wi-Fi 网络时,就避不开「SSID」这个术语。简单来说,SSID 就是 Wi-Fi 网络的名称。比如

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依