通信

linux下进程间通信

妖精的绣舞 提交于 2020-03-10 23:40:44
一、进程间通信方式 如果多个进程之间需要协同处理某个任务时,这时就需要进程间的同步和数据交流。常用的进程间通信(IPC,InterProcess Communication)的方法有: 1.信号(sinal) :信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。 2. 管道(Pipe) :管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系(通常是指父子进程关系)。 3.命名管道FIFO :命名管道(Named Pipe)也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。 4. 命名socket或UNIX域socket(Named Socket或Unix Domain Socket) :socket也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同进程间的进程通信。 5. 信号量(Semaphore) :信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。 6. 共享存储(Shared Memory) :共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制

[RabbitMQ]基础概念——信道channel

折月煮酒 提交于 2020-03-10 20:41:32
目录 前言: 1.channel信道 1.1 为什么RabbitMQ 需要信道,如果直接进行TCP通信呢? 1.2 连接到RabbitMQ的示意图 前言: 最近跟着公司一起做项目重构,也有项目用到了MQ。其中用到了死信队列和延迟队列。 先整理一下路由的基础知识,不能只跟着实战,堆代码。 1.channel信道 信道是生产消费者与rabbit通信的渠道,生产者publish或者消费者消费一个队列都是需要通过信道来通信的。 信道是建立在TCP上面的虚拟链接,也就是rabbitMQ在一个TCP上面建立成百上千的信道来达到多个线程处理。 注意是一个TCP 被多个线程共享,每个线程对应一个信道,信道在rabbit都有唯一的ID,保证了信道的私有性,对应上唯一的线程使用。 1.1 为什么RabbitMQ 需要信道,如果直接进行TCP通信呢? 上述的描述其实已经很明显了,因为TCP可以被多个线程共享,显然线程比TCP要省事的多。 TCP的创建开销很大,创建需要三次握手,销毁需要四次握手。 如果不使用信道,那么引用程序就会使用TCP方式进行连接到RabbitMQ,因为MQ可能每秒会进行成千上万的链接, 总之就是TCP消耗资源 TCP链接可以容纳无限的信道,不会有并发上面的性能瓶颈。 在代码中并不会有直观的能看到信道这个概念。 因为代码中都是用自动配置。 @Autowired

韩立刚《计算机网络》| 第1章 计算机网络概述

主宰稳场 提交于 2020-03-10 20:25:24
1.1因特网 网络:许多计算机连接在一起 互联网:internet 许多网络连接在一起 因特网:Internet 全球最大的一个互联网 1.2 中国互联网 1.3 因特网的组成 (1)边缘部分 客户服务器方式(C/S) 对等方式(P2P) 每个计算机既是服务器又是客户端 (2)核心部分 电路交换(适合与数据实时传输) 建立连接---->通话---->断开连接 报文交换 报文一般比分组长 时延长 分组交换(省时) 数据分段;不需要建立连接;不占线​ 路由器具有 存储转发 功能 优点:高效、灵活、迅速、可靠 缺点:时延、开销 1.4 计算机网络类别 (1)按作用范围分 广域网(WAN) 花钱买服务,花钱买带宽 城域网(MAN) 局域网(LAN) 自己购买设备,自己维护,带宽固定 100M 1000M 距离100m以内 个人区域网(PAN) 新的理解:不仅仅从网络覆盖范围区分局域网和广域网,看应用了什么技术 (2)按使用者分 公用网 专用网 (3)按拓扑结构分 总线型 环型 星型 树型 网状 (4)按工作方式分 资源子网 通信子网 1.5 计算机网络的性能 速率:连接在计算机网络上的主机在数字信道上传送数据位数的速率,单位是b/s,kb/s,Mb/s,Gb/s 带宽:数据通信领域中,数字信道所能传送的最高数据率,单位是b/s,kb/s,Mb/s,Gb/s 吞吐量

人人商城互动直播(与通信服务器连接失败)

流过昼夜 提交于 2020-03-10 20:19:10
人人商城互动直播(与通信服务器连接失败) 原创shitian0811 最后发布于2018-08-07 13:58:08 阅读数 8266 收藏 展开 如上图所示 解决办法: 1,先确定确定组件安装了没,如果没有安装请到人人商城帮助中心搜索下如何安装:直达链接 2,然后打开人人商城模块里的配置文件(路径/addons/ewei_shopv2/core/socket/socket.config.php) 如果没有的按下面代码直接创建个放入 <?php /** * socket server配置文件,重启后生效 */ // 开发模式开关 define('SOCKET_SERVER_DEBUG', false); // 设置服务端IP define('SOCKET_SERVER_IP', 'localhost'); // 设置服务端端口 define('SOCKET_SERVER_PORT', '9501'); // 设置是否启用SSL define('SOCKET_SERVER_SSL', false); // 设置SSL KEY文件路径 define('SOCKET_SERVER_SSL_KEY_FILE', '/www/'); // 设置SSL CERT文件路径 define('SOCKET_SERVER_SSL_CERT_FILE', '/www/'); //

树莓派与PC机的socket通信(1)

a 夏天 提交于 2020-03-10 18:57:58
1.服务端(即pc) import socket import time HOST = '#.#.#.#' #连接本地服务器,可通过ipconfig/all看IPV4的地址 PORT = 8001 #设置端口号,自己设置即可 # socket.AF_INET用于服务器与服务器之间的网络通信 # socket.SOCK_STREAM代表基于TCP的流式socket通信 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.bind((HOST, PORT)) #绑定端口 sock.listen(5) #监听这个端口,可连接最多5个设备 while True: connection,address = sock.accept() #接收客户端的连接请求 try: connection.settimeout(10) #设置10s时限 buf = connection.recv(1024)#接收数据实例化 if buf: #接收成功 connection.send(b'welcome to server!') #发送消息,b表示bytes类型 print('Connection success!') else: #接收失败 connection.send(b'Please go out!') except socket

Android NFC近场通信2——NFC标签调度

拈花ヽ惹草 提交于 2020-03-10 18:14:01
  上面一篇文章简单介绍了NFC的背景和技术应用,今天主要是讲解一下NFC如何发起通信和标签通信(主要是翻译android官网的资料,中间加入个人心得)。 NFC总是在一个发起者和一个被动目标之间发生。发起者发出近场无线电波,这个近场可以给被动目标供电。这些被动的目标包括不需要电源的标签,卡,也可以是有电源的设备。拿我们手机来说,我们手机打开NFC功能后就是一个发起者,被动目标一般就是NFC标签。我们通过读取NFC标签内容,达到获取数据目的。    1、Tag发布系统   当android设备扫描到一个NFC tag,通用的行为是自动找最合适的Activity会处理这个tag Intent而不需要用户来选择哪个Activity来处理。因为设备扫描NFC tags是在很短的范围和时间,如果让用户选择的话,那就有可能需要移动设备,这样将会打断这个扫描过程。你应该开发你只处理需要处理的tags的Activity,以防止让用户选择使用哪个Activity来处理的情况。Android提供两个系统来帮助你正确的识别一个NFC tag是否是你的Activity想要处理的:Intent发布系统和前台Activity发布系统。 Intent发布系统检查所有Activities的intent filters,找出那些定义了可以处理此tag的Activity

IC卡、ID卡、M1卡、射频卡的区别是什么

ⅰ亾dé卋堺 提交于 2020-03-10 17:36:17
IC卡、ID卡、M1卡、射频卡都是我们常见的一种智能卡,但是很多的顾客还是不清楚IC卡、ID卡、M1卡、射频卡的区别是什么,下面我们一起来看看吧。 所谓的IC卡就是集成电路卡,是继磁卡之后出现的又一种新型信息工具。IC卡在有些国家和地区也称智能卡(smart card)、智慧卡(intelligent card)、微电路卡(microcircuit card)或微芯片卡等。它是将一个微电子     芯片嵌入符合ISO 7816标准的卡基中,做成卡片形式。   应用范围:目前IC卡已经十分广泛地应用于包括金融、交通、社保等很多领域。   IC卡可以分为:接触式IC卡、非接触式IC卡和双界面IC卡,而非接触式IC卡简介又称射频卡,成功地解决了无源(卡中无电源)和免接触这一难题,是电子器件领域的一大突破。   非接触式IC卡主要用于公交、轮渡、地铁的自动收费系统,也应用在门禁管理、身份证明和电子钱包。   IC卡读写器是IC卡与应用系统间的桥梁,在ISO国际标准中称之为接口设备IFD(Interface Device)。IFD内的CPU通过一个接口电路与IC卡相连并进行通信。IC卡接口电路是IC卡读写器中至关重要的部分,根据实际应用系统的不同,可选择并行通信、半双工串行通信和I2C通信等不同的IC卡读写芯片。   ID卡全称为身份识别卡,是一种不可写入的感应卡,含固定的编号

IM即时通讯开发APP系统搭建

霸气de小男生 提交于 2020-03-10 17:17:58
公司介绍:我们是专业的IM服务提供商!脸夹科技IM即时通讯是一款包含android客户端/ios客户端/pc客户端/WEB客户端的即时通讯系统。本系统完全自主研发,服务器端源码直接部署在客户主机。非任何第三方IM通讯平台! 软件介绍: 哇呼即时通讯是以先进的点对点通讯技术为基础的基于互联网即时通讯软件(im)。在集团和企业内部,它是一套有效的沟通利器,提供了一个可靠二灵活的集成平台,可方便快捷的接入企业内部应用和复杂的业务流程。 业务范围: 支持推送、多终端登录、历史消息、数据统计,可扩展位置分享、已读标记、输入中… 1.即时消息/单聊:基础功能,文字、图片、表情、语音、文件等,可基于手机联系人、通过通讯录、原有用户及好友关系进行通讯满足用户间的即时沟通。 2.群组:灵活的创建方式、丰富的权限及管理功能提供群组、讨论组、聊天室等不同的群聊解决方案满足多人移动沟通的需求。 3.语音留言:按住说话发送语音的方式当然少不了.免费、清晰、完美的传达,让每一次沟通都充满乐趣,边说边传,有效提升发送速度。 4.实时音视频: 点击呼叫即可,平台已完成点对点通话及视频所需的一切,键盘、静音、扬声器、呼转都支持,通话清晰、视频流畅,带宽占用低。 5.音视频会议:支持同一房间或群组的多人语音群聊,一对多视频、视频会议具备管理员功能,一对多视频有效降低各方宽带占用。 我们的优势: 专业的团队配备

3.管道通信

半世苍凉 提交于 2020-03-10 10:40:39
1.无名管道   pipe  没有实际的文件,只是在内核区域分配一段内存空间来模拟管道,pipe创建无名管道会得到两个文件描述符,一个用来读,一个用来写。   int pipe(int pipefd[2]);//创建管道文件   int fds[2];   int ret=pipe(fds);//fds[0]---读文件描述符  fds[1]---写文件描述符,读取管道文件的时候如果管道中没有数据,则read会阻塞,无名管道只适用于父子进程。 #include <stdio.h> #include <unistd.h> int main() { //创建管道文件 int fds[2]; int ret = pipe(fds); //创建进程 pid_t pid=fork(); if(pid==0){ //关闭读文件描述符 close(fds[0]); //子进程写数据 write(fds[1],"hello world",12); close(fds[1]); } if(pid>0){ //关闭写文件描述符 close(fds[1]); //父进程读取数据 char buf[128]; read(fds[0],buffer,sizeof(buffer)); printf("%s\n",buffer); close(fds[0]); } return 0; } 2.有名管道  

计算机网络概念

不羁的心 提交于 2020-03-10 10:34:32
计算机网络的概念如下,1.计算机网络就是利用通信设备和线路将址 责全网中的信息传递。2、资源子网包括提供资源的主机HDST和请求节点:通信子网主要出网络节点和通信链路组成。3.网络节点也称大或它们的组合。这些功能一-般都由专用于通信的计算机来完成,所以信道,它们可以是电话线、同扯电缆或光缆线也可以是无线电、马的转发,这种传输方式称为“存储-转发”.广域网WAN中一般都采月中的网络节点都简化为安装于主机或工作站中的网卡。 来源: 51CTO 作者: mb5e65a33cd8978 链接: https://blog.51cto.com/14748508/2476755