一、共享内存
、获取一个键值 ftok()
、使用键值获取共享内存的id shmget()
#include <sys/ipc.h>
#include <sys/shm.h>
int shmget(key_t key, size_t size, int shmflg);
功能:分配一块共享内存段。获取和key值相关的共享内存段的id。
参数:
key:ftok()的返回值
size:指定了共享内存段的尺寸
shmflg:
IPC_CREAT:如果没有和key值相关的内存段,创建
IPC_EXCL:
mode: 指定共享内存段的权限
返回值:
成功返回共享内存段的id
失败 - errno被设置 编写代码创建一块共享内存段,获取该内存段的id
代码参见 shmget.c 、将共享内存关联到进程的虚拟地址空间 shmat()
#include <sys/types.h>
#include <sys/shm.h>
void *shmat(int shmid, const void *shmaddr, int shmflg);
功能:将一块共享内存段添加到进程的地址空间
参数:
shmid:指定了共享内存段的id
shmaddr:NULL 有系统选择地址
shmflg:
SHM_RDONLY:共享内存段 只读 返回值:
返回共享内存段附加到进程的地址
错误 (void *) - errno被设置 、向内存读写数据
、解除进程的虚拟地址到共享内存的关联 shmdt()
int shmdt(const void *shmaddr);
功能:解除共享内存段和进程地址空间的关联
参数:
shmaddr:指定了共享内存段的起始地址
返回值:
成功
- 错误 errno被设置 举例说明 使用共享内存段实现进程间的通讯
代码参见 shmA.c shmB.c 二、网络的基础知识 协议就是规则。
物理层协议 定义了电气规则
网帧 定义了网络传输的基本单位 链路层协议
(以太网、令牌环网)
在一个局域网里只允许出现一种网帧。 网络通讯中采用TCP/IP协议家族
TCP/IP 协议分为4层或者5层
物理层、链路层 网络层、传输层、应用层
链路层 网络层、传输层、应用层 ip 地址 192.168.1.12 逻辑地址 4G 40亿
MAC地址 网卡的物理地址 6个字节 4G *64K
每块网卡都有自己的一个身份证。
如和查看本地的ip地址和mac地址
sudo ifconfig windows 下 ipconfig /all 要实现通许,需要知道对方的ip地址和端口号
网络设备
集线器 hub 就是对电气的放大和分流 物理层 1层交换
交换机 交换的是网帧 链路层 2层交换
路由器 交换的是ip报文 网络层 3层交换 ip地址的分类
既然要做网络通讯,就必须知道ip地址的构成
ip地址是由网络号和主机号组成
那么我们就需要知道ip地址的主机号 网络号
如何获取一个ip地址的网络号?
需要使用子网掩码
192.168.1.130/ 192.168.1.130
255.255.255.128
192.168.1.128 网络号
- 192.168.1.125/ 192.168.1.125
255.255.255.128
192.168.1.0 192.168.1.125/
192.168.1.130/ 局域网内数据的传送过程
如何查看本机的路由表?
sudo route -v 如何查看arp表?
sudo arp -a 如何知道两台机器是否互通?
ping 目标ip地址
172.30.3.93 总结:
一、system v IPC
共享内存
二、网络基础
子网掩码
三次握手
TCP/IP协议分层

共享内存、网络(day13)的更多相关文章

  1. 【网络编程基础】Linux下进程通信方式(共享内存,管道,消息队列,Socket)

    在网络课程中,有讲到Socket编程,对于tcp讲解的环节,为了加深理解,自己写了Linux下进程Socket通信,在学习的过程中,又接触到了其它的几种方式.记录一下. 管道通信(匿名,有名) 管道通 ...

  2. UNIX网络编程 12 15共享内存区

    管道,FIFO,消息队列,在两个进程交换信息时,都要经过内核传递 共享内存可以绕过,默认fork生成的子进程 并不与父进程共享内存区 mmap munmap msync 父子进程共享内存区的方法之一是 ...

  3. linux网络编程之posix共享内存

    今天继续研究posix IPC对象,这次主要是学习一下posix共享内存的使用方法,下面开始: 下面编写程序来创建一个共享内存: 编译运行: 那posix的共享内存存放在哪里呢?上节中学的posix的 ...

  4. linux网络编程之system v共享内存

    接着上次的共享内存继续学习,这次主要是学习system v共享内存的使用,下面继续: 跟消息队列一样,共享内存也是有自己的数据结构的,system v共享内存也是随内核持续的,也就是说当最后一个访问内 ...

  5. linux网络编程之共享内存介绍

    今天是个好日子,洋人之节乃全球同庆,圣诞一来感觉就要过年了,不过今晚心情有点打折扣,给心爱的人打电话没有打通,本想在平安夜送上快乐的祝福给她,糟糕的心情让自己好像泄了气的皮球一样,无精打彩,心情灰暗, ...

  6. Linux进程间通信(六):共享内存 shmget()、shmat()、shmdt()、shmctl()

    下面将讲解进程间通信的另一种方式,使用共享内存. 一.什么是共享内存 顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存.共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式 ...

  7. 进程间通信IPC:消息队列,信号量,共享内存

    2015.3.4星期三 阴天 进程间通信:IPC 文件对象:记录文件描述符,文件开关等 IPC标示符:系统全局的流水号两个进程要通信,打开的是唯一的对象进行通讯,通过key操作 XSI IPC:消息队 ...

  8. linux下共享内存mmap和DMA(直接访问内存)的使用 【转】

    转自:http://blog.chinaunix.net/uid-7374279-id-4413316.html 介绍Linux内存管理和内存映射的奥秘.同时讲述设备驱动程序是如何使用“直接内存访问” ...

  9. C扩展 从共享内存shm到memcache外部内存

    引言 - ipc - shm 共享内存 本文会通过案例了解ipc 的共享内存机制使用, 后面会讲解C 如何使用外部内存服务memcached. 好先开始了解 linux 共享内存机制. 推荐先参看下面 ...

随机推荐

  1. Spring cloud config配置文件加密解密

    Spring cloud config配置文件加密解密 学习了:http://blog.csdn.net/u010475041/article/details/78110349 学习了:<Spr ...

  2. AVPlayer的使用,带缓冲

    #import "ViewController.h" #import <AVFoundation/AVFoundation.h> @interface ViewCont ...

  3. centos下配置防火墙port失败

    问题:将规则加入到防火墙中.总是port无法开启 (1)改动文件 首先vim /etc/sysconfig/iptables -A INPUT -m state --state NEW -m tcp ...

  4. [深入理解Android卷一全文-第十章]深入理解MediaScanner

    由于<深入理解Android 卷一>和<深入理解Android卷二>不再出版,而知识的传播不应该由于纸质媒介的问题而中断.所以我将在CSDN博客中全文转发这两本书的全部内容. ...

  5. Spring为了简化java开发採用的四种策略

    以下是<Spring in action>中的总结性语言,记录下来,作为研究源码的主要线索. 1.採用轻量级的pojo.最小侵入式编程. 2.依赖注入(DI)和面向接口编程实现松耦合. 3 ...

  6. 上机题目(0基础)- 数据库事务(Java)

    /* * 文件名称:JDBCTestCase.java * 版权:Copyright 2006-2011 Huawei Tech. Co. Ltd. All Rights Reserved. * 描写 ...

  7. 1360 xth 的玫瑰花

    1360 xth 的玫瑰花  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题解       题目描述 Description 这天是rabbit 的生日 ...

  8. Coursera Algorithms week3 归并排序 练习测验: Shuffling a linked list

    题目原文: Shuffling a linked list. Given a singly-linked list containing n items, rearrange the items un ...

  9. 工具分享3:VMware 10虚拟机、MS-DOS 7.1、安装教程(MS-DOS环境安装)

    VMware 10工具下载地址: 网页下载链接:http://www.xp510.com/xiazai/ossoft/desktools/22610.html MS-DOS .10镜像下载地址: 网页 ...

  10. py2exe打包遇到的问题

    py2exe打包python成.exe文件 打包过程和结果 1.创建setup脚本打包文件,其中设置打包的属性和方法.注意:尽量将被打包文件和此打包脚本放在同目录下(因为在尝试非同目录下时,出现了非可 ...