通信

多线程之线程间通信

久未见 提交于 2020-03-12 18:42:54
1、案例 class NumberHolder { private int number; public synchronized void increase() { if (0 != number) { try { wait(); } catch (InterruptedException e) { e.printStackTrace(); } } // 能执行到这里说明已经被唤醒 // 并且number为0 number++; System.out.print(number+"-"); // 通知在等待的线程 notify(); } public synchronized void decrease() { if (0 == number) { try { wait(); } catch (InterruptedException e) { e.printStackTrace(); } } // 能执行到这里说明已经被唤醒 // 并且number不为0 number--; System.out.print(number+"-"); notify(); } } class IncreaseThread extends Thread { private NumberHolder numberHolder; public IncreaseThread(NumberHolder

nginx与php-fpm通信的两种方式

China☆狼群 提交于 2020-03-12 16:30:49
简述 在linux中,nginx服务器和php-fpm可以通过tcp socket和unix socket两种方式实现。 unix socket是一种终端,可以使同一台操作系统上的两个或多个进程进行数据通信。这种方式需要再nginx配置文件中填写php-fpm的pid文件位置,效率要比tcp socket高。 tcp socket的优点是可以跨服务器,当nginx和php-fpm不在同一台机器上时,只能使用这种方式。 windows系统只能使用tcp socket的通信方式 配置方法 tcp socket:tcp socket通信方式,需要在nginx配置文件中填写php-fpm运行的ip地址和端口号。 location ~ \.php$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; } unix socket:unix socket通信方式,需要在nginx配置文件中填写php-fpm运行的pid文件地址。 //service php-fpm start生成.sock文件 location ~ \.php$ { include

采用FPGA实现音频模数转换器

前提是你 提交于 2020-03-12 14:57:35
http://www.21ic.com/app/eda/200905/42832.htm http://www.eefocus.com/article/09-10/84673s.html 摘 要 简要分析sigma—deIta(∑一△)架构模数转换器(ADC)原理,提出一种基于FPGA内部LVDS(Low Voltage Differential Signaling)接收器的音频ADC架构,并给出在FPGA上的实现结果。在FPGA内部实现音频ADC,具有扩展方便灵活,实现简单,集成度高等优点。 关键词 sigma—delta FPGA LVDS 音频ADC 引 言 数字系统已经越来越广泛地应用到现实世界的各个领域中,绝大多数数字系统无法直接处理现实世界中的信号,必须采用ADC器件把模拟信号转换成数字信号后才能处理。FPGA和DSP处理器是数字信号处理的两大主流技术。随着技术的发展和进步,一些FPGA器件集成了一些模拟电路以及混合信号处理模块,比如集成温度监控二极管。Actel公司的混合FPGA系列已经集成ADC、DAC、PGA(Programmable Gain Amplifier)、电压参考基准源和RCC(Resistance Capacitance)振荡器。Xilinx公司的V5系列FPGA集成电压和温度监控ADC,用户可以直接通过JTAG下载调试接口读取电压和温度值

进程间通信之管道

旧城冷巷雨未停 提交于 2020-03-12 11:16:39
文章目录 1进程间通信:管道 1进程间通信:管道 进程间通信 IPC: inter‐process communicating 两个进程之间互相交换数据,称为进程间通 信。 进程A 进程B 进程间通信 四种方式: ① 管道pipe ② 消息队列message queue ③ 共享内存shared memory ④ 网络套接字socket 管道 管道:pipe,是Linux操作系统提供的一个消息传递机制。 ① 系统中创建一个文件,其文件类型为管道 mkfifo ~/project/message ② 进程A: 打开open该文件,向文件写入write数据 ③ 进程B: 打开open该文件,从文件读取read数据 于是,数据 从进程A传递到进程B。。。显然,管道文件 并不是普通的文件。 管理文件不是普通的文件。。。 ls ‐l message prw‐rw‐r‐‐1 mytest mytest 0 8月 19 02:48 message (首字母为p,表示其类型为pipe) 演示 write.cpp : 向pipe中写入数据 read.cpp: 从pipe中读取数据 (1) open是阻塞的 一个发送方,一个接收方,都齐备时才返回 (2) read是阻塞的 (3) 管道是单向的 这意味着两个进程之间可能要建立两个管道 (4) 和普通文件 区别?? 小结: 1,管道意义 2

家庭网络速度问题排查

 ̄綄美尐妖づ 提交于 2020-03-12 08:44:52
受新冠疫情影响,学生都开始在家学习,通过电视、网络上课。近期有不少朋友反馈上课卡,今天我们就来分析分析网络卡的主要原因与解决思路。 首先,大家学习一下网速测试工具的使用。 打开 https://www.speedtest.cn/ 网站,点击中间的Go,一会儿之后就会给出当前的网速情况。 这是我家100M带宽测试的情况。 以下是Zoom视频会议对于带宽的要求,大家可以对比下。 一、通过4G移动数据上网 通过手机的4G信号上网,网络卡的原因主要2个方面, 1、上网设备(手机)有问题,推荐使用华为自己做的手机如华为的meta系列,而不要选择低端的手机,有的低端的手机信号质量不好。 2、家庭所处位置信号不好,这个可以从平时的使用中观察,比如我家的移动信号就比较差,只能站在窗口打电话。遇到这种硬伤只能换方案啦,推荐使用光纤+wifi上网。 二、通过光纤+wifi上网 现在上海基本家家都通光纤了,我们讨论一下家庭的组网方案。 建议使用电信的光纤入户,不推荐使用移动、联通等其它运营商的,小道消息(未经证实)说基本上物理光纤都是电信家的,其它家是租用电信的通道,而且会很多家共享带宽,也就是说多家同时上网时,实际可用的带宽相对较小。 wifi上网设备(手机),也是推荐使用华为自己做的手机如华为的meta系列,而不要选择低端的手机,有的低端的手机信号质量不好。 一般家里的组网有几种: 1、光猫

get,post 区别,HTTP通信

瘦欲@ 提交于 2020-03-12 07:38:01
GET & POST GET 1.GET 的本质是"得" 2.从服务器拿数据,效率更高   3.从数学的角度来讲,GET 的结果是"幂等"的   4.GET请求能够被缓存   5.在 HTTP 协议定义中,没有对GET请求的数据大小限制,不过因为浏览器不同,一般限制在 2~8K 之间   6.所有的参数包装在URL中,并且服务器的访问日志会记录,不要传递敏感信息   参数格式? 在资源路径末尾添加?表示追加参数 变量名=变量值 每一个变量及值按照"变量名=变量值"方式设定,不能包含空格或者中文 等特殊符号 & 多个参数使用&连接 POST   1.POST 的本质是"给"   2.向服务器发送数据,也可以获得服务器处理之后的结果,效率不如GET   3.POST请求不能被缓存,post再次提交数据,页面会有提示:是否发送数据.....   POST提交数据比较大,大小靠服务器的设定值限制,PHP通常限定 2M   URL中,只有资源路径,但不包含参数,服务器日志不会记录参数,相对更安全   参数被包装成二进制的数据体,格式与GET基本一致,只是不包含?   所有设计用户隐私的数据(密码,银行卡号)一定记住使用POST方式传递 -------------------------------------------------------------------------------

数据传输通信协议总结

断了今生、忘了曾经 提交于 2020-03-12 02:13:53
在数据传输时,总是存在丢包、分包、误包的情况。针对这一问题,则必须引进一套数据通信协议,来保证数据的完整性与准确性。 通常,针对 丢包、误包问题 都会采用 数据长度 和 校验码 比对的方式来判断一包数据的准确性。针对 分包问题 ,则采用 报文头、报文尾 的方式(即采用某两个特定的值作为一包的数据开始和结尾的标志),但采用这种方法来标记要保证数据中不会有与报文头、尾相同的字符,这便又涉及到了 数据转义 。 如下为自己总结的一个简单的数据通信协议,可用于串口、网络等通信,供大家参考。 一、数据传输格式 位置 长度(Byte) 定义 说明 0 1 报文头 报文头,固定值0x5B,即字符’[’ 1 2 数据长度 数据体的长度( 传输的数据实际长度 ) 3 X 数据体 传输的数据 3+X 1 校验位 XOR从数据长度到数据体的异或值 4+X 1 报文尾 报文结束,固定值0x5D,即字符’]’ 二、报文转义 除报文头和报文尾外,其它数据域出现 0x5B 、 0x5C 或 0x5D 时,进行如下报文转义 (0x5C 后面只能跟 0x00 、 0x01 、 0x02 ,其它值为非法 ) 转义前 转义后 0x5B 0x5C + 0x01 0x5C 0x5C + 0x00 0x5D 0x5C + 0x02 三、数据处理流程 发送数据前处理流程:数据体->计算数据体长度->计算校验位->数据转义-

基于STM32之UART串口通信协议(三)接收

蹲街弑〆低调 提交于 2020-03-12 02:00:20
一、前言 1、简介   回顾上一篇 UART发送 当中,已经讲解了如何实现UART的发送操作了,接下来这一篇将会继续讲解如何实现UART的接收操作。 2、UART简介   嵌入式开发中,UART串口通信协议是我们常用的通信协议之一,全称叫做通用异步收发传输器(Universal Asynchronous Receiver/Transmitter)。 3、准备工作   在 UART详解 中已经有了详细的说明,按照里面的说明即可。 注:   建议每次编写好一个相关功能且测试功能成功使用后,保存备份并压缩成一份Demo例程,方便日后有需要的时候可以直接使用。   例如: 二、CubeMx配置及函数说明 说明:   如果有看过我写的 UART发送 的兄弟姐妹们应该会知道,在 UART发送 和 UART详解 中的CubeMx配置都是一样的。   但这一次不同,会在原本配置CubeMx的基础上,添加一些UART的中断配置来实现中断接收操作。 1、CubeMx配置 1)按照 UART详解 配置UART(若配置过,可以继续使用) 2)使能串口中断 3)设置中断优先级(如果没开启其他中断,那就默认即可,直接跳过) 4)代码生成(点击前最好把原本的工程关掉,不然有可能会有问题) 2、函数说明 1)CubeMx生成的UART初始化(在usart.c中) 说明:   会与上一篇 UART发送

最新中国移动联通电信手机号段

你说的曾经没有我的故事 提交于 2020-03-12 00:33:48
根据实际开发于2009年9月7日最新统计: 中国电信发布中国3G号码段:中国联通185,186;中国移动188,187;中国电信 189,180共6个号段。 3G业务专属的180-189号段已基本分配给各运营商使用, 其中180、189分配给中国电信,187、188 归中国移动使用,185、186属于新联通。 中国移动拥有号码段:139、138、137、136、135、134、159、158、 157(3G)、152、151、150、188(3G)、187(3G);14个号段 中国联通拥有号码段:130、131、132、155、 156(3G)、186(3G)、185(3G);6个号段 中国电信拥有号码段:133、153、189(3G)、180(3G);4个号码段 移 动: 2G号段(GSM网络)有139,138,137,136,135,134(0-8),159,158,152,151,150 3G号段(TD-SCDMA网络)有157,188,187 147是移动TD上网卡专用号段. 联通: 2G号段(GSM网络)有130,131,132,155,156 3G号段(WCDMA网络)有186,185 电信: 2G号段(CDMA网络)有133,153 3G号段(CDMA网络)有189,180 来源: https://www.cnblogs.com/xingxiudong/archive

tcp协议详解(一)

自作多情 提交于 2020-03-11 21:47:06
t cp协议是tcp/ip协议族的重要成员,相比于ip协议;TCP协议更靠近应用层;可操作性根强,一些重要的socket都和tcp协议有关; 本文将从以下四个方面去介绍tcp协议: 【1】tcp头部信息:tcp头部信息出现在每一个tcp报文段中,用于确定通信的源端口号,目的端口号,管理tcp链接,控制两个方向的数据流; 【2】tcp状态转移过程:tcp连接的任意一端都是状态机。在tcp连接从建立连接到断开连接的整个过程中,连接两端的状态机将经历不同的状态变迁;理解tcp状态转移对于调试网络应用程序将有很大的帮助; 【3】tcp数据流:通过分析数据流,我们就可以从网络应用程序外部来了解应用层协议和通信双方交换的应用数据。这一部分将讨论两种类型的tcp数据流:交互数据流和成块数据流。tcp数据流中有一种特殊的数据,称为紧急数据。我们也将简单讨论之; 【4】tcp数据流的控制:为了保证可靠传输和提高网络通信质量,内核需要对tcp数据流进行控制。这一部分讨论tcp数据流控制的两个方面:超时重传和拥塞控制。   不过详细介绍tcp协议之前,我们先了解一下tcp服务的特点,以及他和udp服务的区别; tcp服务的特点   传输层协议主要有两个:tcp协议和udp协议 tcp相对于udp的特点是:面向连接的,字节流的,可靠传输;    使用tcp协议通信的双方必须建立连接,然后才能开始数据的读写