- 博客(39)
- 收藏
- 关注
原创 c语言实现线程池
备注:该线程池源码参考自传直播客培训视频配套资料;源码:https://pan.baidu.com/s/1zWuoE3q0KT5TUjmPKTb1lw 密码:pp42引言:线程池是一种多线程处理形式,大多用于高并发服务器上,它能合理有效的利用高并发服务器上的线程资源;在Unix网络编程中,线程与进程用于处理各项分支子功能,我们通常的操作是:接收消息 ==> 消息分类 ==> 线程创建 ==> 传递消息到子线程 ==> 线程分离 ==> 在子线程中执行任务 ==>
2022-03-09 18:48:30
368
原创 Linux下dhcpd服务中主配置文件/etc/dhcp/dhcpd.conf文件中参数详解
1、设置默认搜索域:option domain-nameoption domain-name配置项用来为客户机指定解析主机名时的默认搜索域,该配置项将体现在客户机的“/etc/resolv.conf”配置文件中(如 “search benet.com”)。配置文件中默认的搜索域是example.org,配置信息如下:option domain-name "example.org";2、设置DNS服务器地址:option domain-name-serversoption dom..
2021-12-27 18:20:56
4141
1
原创 交叉编译内核驱动
一、需要准备的文件a) 客户提供 Kernel 编译后输出目录中的 .config , Module.symvers 文件。此编译目录必须和当前机器中运行的 Kernel 版本一致。b) 下载和运行机器中 kernel 版本完全一致的 kernel 源码。例如进入机器后: uname -aLinux localhost 4.14.69-quilt-2e5dc0ac-g4540970 #2 SMP PREEMPT Wed Mar 13 12:57:38CST 2019 x86_64则需要下载 k
2021-11-13 19:03:34
1536
转载 Ubuntu下串口号端口号ttyUSB0和ttyUSB1不固定?
在工控机ubuntu操作系统上发现每次连接USB设备串口号不固定,ttyUSB0和ttyUSB1经常变来变去的,为了固定端口号,网上搜了下,整理出以下可行步骤:1.首先命令行输入lsusb查看设备:找到对应USB的设备ID,我这里是 1a86:7523, 当然你可以不连接USB设备输入lsusb,连接上后再输一次lsusb,多加出现的那一行就是你对应的ID啦。2. 输入 cd /etc/udev/rules.d 进入rules.d目录,新建一个usb.rules文件,可以用 touch usb.
2021-09-28 15:05:40
1566
原创 windows下使用Nginx搭建Rtmp流媒体服务器
一、环境介绍操作系统:win10 64位系统Linux下搭建Nginx搭建Rtmp流媒体服务器方法请看这里:https://blog.youkuaiyun.com/xiaolong1126626497/article/details/105378894二、流媒体服务器介绍流媒体服务器的主要功能是以流式协议(RTP/RTSP、MMS、RTMP等)将视频文件传输到客户端,供用户在线观看;也可从视频采集、压缩软件接收实时视频流,再以流式协议直播给客户端。nginx服务器是开源的高性能的http服务器.
2021-09-13 19:54:26
4724
原创 linux下nat的应用
随着Linux的应用普及,Linux在网络方面的强大逐步为大家所认识,越来越多的单位选择使用Linux来作为服务器的操作系统。今天笔者想就Linux在校园网NAT方面的应用展开一些探讨。大 家都知道,所谓“网络地址转换”(Network Address Translation, NAT),它是定义于RFC1631中的Internet标准,主要是用来简化及保存IP地址,它可让原来无法上网,但是可以使用内部IP地址的主机可以 成功地连接Internet。这可大大减少IP地址的需求,因为基本上整个内部网络都可以
2021-06-04 18:29:39
338
原创 线程池原理及C语言实现线程池
备注:该线程池源码参考自传直播客培训视频配套资料;源码:https://pan.baidu.com/s/1zWuoE3q0KT5TUjmPKTb1lw 密码:pp42引言:线程池是一种多线程处理形式,大多用于高并发服务器上,它能合理有效的利用高并发服务器上的线程资源;在Unix网络编程中,线程与进程用于处理各项分支子功能,我们通常的操作是:接收消息 ==> 消息分类 ==> 线程创建 ==> 传递消息到子线程 ==> 线程分离 ==> 在子线程中执行任务 ==>
2021-05-20 16:44:23
187
原创 解决高并发的几种方法
一.高并发可以这么理解高并发,在同一时间,有大量用户同时访问同一个URL,容易导致服务器和数据库资源被占满崩溃,数据库的存储和更新结果跟理想不一致,例如出现重复的数据记录,多次添加记录等数据错乱问题。二.高并发的处理策略1.服务器服务器可以做负载均衡集群,分摊系统的工作,减少单一服务器的资源负担2.数据库2.1 通过表设计防止并发导致数据错乱2.2 表设计成分库分表,分库减少单一数据库的负担,分表防止因数据量增多而降低数据库的性能2.3 数据库读写分离2...
2021-05-20 14:53:37
14034
原创 串口,使用交叉还是直连串口线
http://wenku.baidu.com/link?url=Hub1jf52SSKnOES2QhZMlbX_snUS1oEj1SYiaS8VZM7ET2utS4dvhaaQ7Iexzi54nPhb8tdiiNm-DNSWJGu_nI0ZoDPr1u_tH9NvuAnElsC从接触51单片机开始就认识了串口,但前段时间越想越对串口迷茫:公头、母头、直连串口线、交叉串口线,这些到底该怎么连接把我搞得晕头转向。终于在不断的查阅资料、静静的苦思冥想和不断的看电路图、用万用表测试中,对串口有了透彻、清晰的认识
2021-04-01 17:47:52
2028
原创 图解简单C程序的运行时结构
程序在内存中的存储分为三个区域,分别是动态数据区、静态数据区和代码区。函数存储在代码区,全局变量以及静态变量存储在静态数据区,而在程序执行的时候才会在动态数据区产生数据。程序执行的本质就是代码区的指令不断执行,驱使动态数据区和静态数据区产生数据变化。代码区与动态数据区由三个寄存器控制,分别是eip、ebp和esp。eip指向代码区下一个要执行的指令,ebp与esp分别指向动态数据区的栈底和栈顶。初始情况下eip默认指向main函数的第一条指令,esp、ebp指向的位置由程序加载时内核的设置决定。我们
2021-03-30 11:33:57
201
原创 Android APP开发入门教程
这篇文章主要介绍了Android APP开发入门教程,从SDK下载、开发环境搭建、代码编写、APP打包等步骤一一讲解,非常简明的一个Android APP开发入门教程,需要的朋友可以参考下。工作中有做过手机App项目,前端和android或ios程序员配合完成整个项目的开发,开发过程中与ios程序配合基本没什么问题,而android各种机子和rom的问题很多,这也让我产生了学习android和ios程序开发的兴趣。于是凌晨一点睡不着写了第一个android程序HelloAndroid,po出来分享给其他
2021-03-08 14:44:38
11106
原创 Ubuntu下串口号端口号ttyUSB0和ttyUSB1不固定
在工控机ubuntu操作系统上发现每次连接USB设备串口号不固定,ttyUSB0和ttyUSB1经常变来变去的,为了固定端口号,网上搜了下,整理出以下可行步骤:1.首先命令行输入lsusb查看设备:找到对应USB的设备ID,我这里是 1a86:7523, 当然你可以不连接USB设备输入lsusb,连接上后再输一次lsusb,多加出现的那一行就是你对应的ID啦。2. 输入 cd /etc/udev/rules.d 进入rules.d目录,新建一个usb.rules文件,可以用 touch us
2021-01-26 17:33:47
1329
原创 ubuntu16.02 ntp时钟同步服务设置
ubuntu16.02 ntp时钟同步服务设置1. 首先安装ntp服务(ubuntu 16.02)在linux的root用户下执行以下命令yuminstall ntp –y(如果是ubuntu系统则执行apt install yum ntp)2. 修改ntp配置文件(server)我们需要在linux集群中找到一台作为ntp服务器的server,其他机器则为ntp的client,因此,在server服务器上修改一下配置文件执行vim/etc/ntp.conf ...
2020-12-24 11:25:11
748
原创 通俗讲解:傅立叶分析和小波分析之间的关系
从傅里叶变换到小波变换,并不是一个完全抽象的东西,完全可以讲得很形象。小波变换有着明确的物理意义,如果我们从它的提出时所面对的问题看起,可以整理出非常清晰的思路。下面我就按照傅里叶-->短时傅里叶变换-->小波变换的顺序,讲一下为什么会出现小波这个东西、小波究竟是怎样的思路。(反正题主要求的是通俗形象,没说简短,希望不会太长不看。。)一、傅里叶变换关于傅里叶变换的基本概念在此我就不再赘述了,默认大家现在正处在理解了傅里叶但还没理解小波的道路上。(在第三节小波变换的地方我会再形象地讲一下傅里叶
2020-09-04 18:37:45
1190
原创 嵌入式研发总结
仔细观察各种招聘的岗位要求吧,无非是两方面。(1)通用要求比如什么学历,多少年工作经验,有创新精神,抗压能力强,吃苦耐劳,善于沟通,态度认真等等等等...(2)专业要求这个可真的多了去了,但无非就是各种精通。什么精通控制理论,精通电路设计,精通各种硬件驱动开发,精通linux内核以及裁剪,精通C/C++/Java语言,精通DSP,精通ARM,精通什么linux/ecos/ucos/wince/VxWorks,精通嵌入式数据库,精通多线程编程,精通各种网络协议,精通各种总线协议,精通塞班.
2020-09-01 18:06:43
724
原创 Linux Netcat 命令——网络工具中的瑞士军刀
netcat是网络工具中的瑞士军刀,它能通过TCP和UDP在网络中读写数据。通过与其他工具结合和重定向,你可以在脚本中以多种方式使用它。使用netcat命令所能完成的事情令人惊讶。netcat所做的就是在两台电脑之间建立链接并返回两个数据流,在这之后所能做的事就看你的想像力了。你能建立一个服务器,传输文件,与朋友聊天,传输流媒体或者用它作为其它协议的独立客户端。下面是一些使用netcat的例子.[A(172.31.100.7) B(172.31.100.23)]Linux netcat 命令
2020-07-10 18:05:36
210
原创 linux nc命令使用详解
linux nc命令使用详解 功能说明:功能强大的网络工具语 法:nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s<来源位址>][-v...][-w<超时秒数>][主机名称][通信端口...]参 数: -g<网关> 设置路由器跃程通信网关,最丢哦可设置8个。 -G<指向器数目> 设置来源路由指向.
2020-07-10 18:02:22
1205
原创 设置无线网卡为AP工作模式(pi2和pi3)
树莓派2的设置办法:1. 安装NetworkManager管理工具(可选),以支持nmcli命令sudo apt-get install -y network-manager2. 安装hostapd和dhcpdsudo apt-get install -y hostapd isc-dhcp-server开机不需要启动这两个服务,建议把它们关掉:sudo update-rc.d -f hostapd remove3. 配置hostapd和dhcpdsudo ..
2020-05-21 18:34:20
1450
1
原创 linux中安装boa服务器
1.从官网下载最新 boa源码包,网址:http://www.boa.org/;2.解压,进入 src目录,给 configure权限,执行 ./configure;3.make编译,会报错,util.c: 在函数‘get_commonlog_time’中:util.c:100:39: 错误:毗连“t”和“->”不能给出一个有效的预处理标识符time_offset = TIME...
2020-04-07 14:00:10
665
转载 用C语言实现websocket服务器
Websocket Echo Server Demo背景嵌入式设备的应用开发大都依靠C语言来完成,我去研究如何用C语言实现websocket服务器也是为了在嵌入式设备中实现一个ip camera的功能,用户通过网页访问到嵌入式设备的摄像头以及音频,在学习的过程中先实现echo server是最基本的。主要参考资源编写 WebSocket 服务器——MDNLinux下用C编写WebSoc...
2020-04-02 15:25:12
1779
原创 js中前端与后台的数据交互全解
只要编程语言能够支持网卡端口的监听和发送,理论上都是可以实现服务器后台设计的。也因此造成了实现后台的语言偏多,而web前端语言以html/css/js为主。所以在这里我们不涉及后台的设计,只介绍在web前端设计中前端数据的发送和后台数据的接收。纯粹的前端工程师已经不存在了,做前端开发必须要了解必要的后台、数据库知识,以及与后台的交互设计,其中你需要知道的名词包括JSON、AJAX、序列化、...
2020-04-02 11:18:45
2533
原创 USB转TTL、USB转232的区别以及各电平信号的特性分析
一、TTL电平、COMS电平、232电平、USB电平信号的主要特性二、电平之间的转换PC机上的通信接口有USB接口,相应电平逻辑遵照USB原则;还有DB9接口(九针口),相应电平逻辑遵照RS-232原则。而我们的单片机上的串行通信通过单片机的RXD、TXD、VCC、GND四个引脚,相应电平逻辑遵照TTL原则。当然,新手小白买的学习板上肯定都已经集成了类似PL2303、CP210...
2020-03-16 16:38:08
1226
原创 深度解析串口、COM口、TTL、RS-232、RS-485的区别及应用
1、串口、COM口是指的物理接口形式(硬件)。而TTL、RS-232、RS-485是指的电平标准(电信号)。2、接设备的时候,一般只接GND RX TX。不会接Vcc或者+3.3v的电源线,避免与目标设备上的供电冲突。3、PL2303、CP2102芯片是USB转 TTL串口 的芯片,用USB来扩展串口(TTL电平)。4、MAX232芯片是 TTL电平与RS232电平的专用双向转换芯...
2020-03-02 11:24:08
574
原创 C++代码封装成dll供C#中调用
C#工程不可以直接调用C++的头文件和Lib库等所以在程序中C#需要调用的现象,先将C++的东西封装成动态链接库,再调用若调用dll时显示:无可用源调用,说明导入的DLL路径不对。静态库和动态库区别:静态库和动态库是两种共享程序代码的方式,它们的区别是:静态库在程序的链接阶段被复制到了程序中,和程序运行的时候没有关系;动态库在链接阶段没有被复制到程序中,而是程序在运行时由系统动态加载到...
2020-02-18 17:19:06
1580
原创 心电图各种波段解析
心电图记录纸是一种1mm﹡1mm的方格坐标纸。常规25mm/s走纸速度,每小横格为1mm,表示0.04s,每小格高1mm,表示0.1mV。方法/步骤 P波 反映左右两心房去极过程电位和时间的变化。 电刺激由窦房结产生,经由节间传导通路而扩散至左右心房。 直立向上而顶端钝圆平滑,但AVR导联中的P波是倒置的。 正常时节为0.06-0.12秒. 电压小于0.22-...
2019-12-09 17:30:16
1812
原创 apache和tomcat的区别
apache支持静态页,tomcat支持动态的,比如servlet等,一般使用apache+tomcat的话,apache只是作为一个转发,对jsp的处理是由tomcat来处理的。apache可以支持php\cgi\perl,但是要使用java的话,你需要tomcat在apache后台支撑,将java请求由apache转发给tomcat处理。apache是web服务器,Tomcat是...
2019-11-28 15:58:35
81
原创 从I和II中得出aVR、aVL和aVF的计算公式
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.youkuaiyun.com/caokunchao/article/details/78610517如何从I和II中得出aVR、aVL和aVF的计算公式如下:III = II-IaVR = -0.5*(I+II)aVL = I - 0.5*IIaVF = ...
2019-11-06 17:26:08
3473
原创 三次握手和四次握手
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.youkuaiyun.com/hyg0811/article/details/102366854面试相关文章推荐:面试必备 | 小伙伴栽在了JVM的内存分配策略。。。垃圾收集器(CMS、G1)及内存分配策略Java虚拟机何谓垃圾及垃圾回收算法你真的知道Inte...
2019-11-05 20:05:28
104
原创 openssl编写SSL、TLS程序
一、简介SSL(Secure Socket Layer)是netscape公司提出的主要用于web的安全通信标准,分为2.0版和3.0版.TLS(Transport Layer Security)是IETF的TLS 工作组在SSL3.0基础之上提出的安全通信标准,目前版本是1.0,即RFC2246.SSL/TLS提供的安全机制可以保证应用层数据在互联网络传输 不 被监听,伪造和窜改.ope...
2019-09-09 17:13:18
1444
原创 HTTP Over TLS 简介
Table Of Contents1. HTTPS是什么? 2. TLS协议简介 3. TLS握手流程 3.1 客户端请求建立连接 3.2 服务器确定加密套件 3.3 服务器发送证书 3.4 双方完成身份认证 3.5 生成密钥 3.6 通知开始加密传输 3.7 确保密钥可用 4. 加密套件与密钥 4.1 加密套件 4.2 master secret ...
2019-09-06 19:43:33
4767
1
原创 socket的接收端接收数据慢时,会不会被后来的数据包覆盖?(会不会丢失数据包)
1、首先限定下这里讨论的是4层协议,就是传输层的协议对于tcp来说,有个滑动窗口(滑动窗口是什么自己google),这个机制tcp已经帮你做好了,可以保证在接收端处理的慢/来不及接受数据的时候,发送端就会等待,不会硬塞给接收端的,所以首先接收端是安全的,不会爆掉,不会覆盖。那么此时对于发送端来说,待发送的数据就会越积越多,积满了tcp自己的发送缓冲之后,你再调用send就会报nobufs的错误...
2019-07-30 15:49:35
2424
原创 在docker中部署tomcat并且部署java应用程序的步骤详解
本文给大家介绍如何在docker中部署tomcat及如何部署我们的应用程序到docker容器的tomcat里,本文介绍的非常详细,具有参考借鉴价值,一起看看吧先给大家简单说下Docker的概念Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不...
2019-05-28 23:33:02
673
原创 Docker入门实战
基本概念Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上。Docker是一个重新定义了程序开发测试、交付和部署过程的开放平台,Docker则可以称为构建一次,到处运行,这就是docker提出的“Build once,Run anywhere”备注:java提出的是” compile O...
2019-05-28 23:31:16
422
转载 构建高并发平台架构
一、设计理念1.空间换时间1)多级缓存,静态化客户端页面缓存(http header中包含Expires/Cache of Control,last modified(304,server不返回body,客户端可以继续用cache,减少流量),ETag)反向代理缓存应用端的缓存(memcache)内存数据库Buffer、cache机...
2019-05-25 19:15:49
747
原创 C++中的friend友元函数
友元函数是可以直接访问类的私有成员的非成员函数。它是定义在类外的普通函数,它不属于任何类,但需要在类的定义中加以声明,声明时只需在友元的名称前加上关键字friend。我们已知道类具有封装和信息隐藏的特性。只有类的成员函数才能访问类的私有成员,程序中的其他函数是无法访问私有成员的。非成员函数可以访问类中的公有成员,但是如果将数据成员都定义为公有的,这又破坏了隐藏的特性。另外,应该看到在某些情况...
2019-05-24 20:59:28
332
转载 嵌入式linux 项目开发(一)——CGIC编程
一、CGIC简介1、CGI简介CGI(Common Gateway Interface)是外部应用扩展应用程序与WWW服务器交互的一个标准接口。按照CGI标准编写的外部扩展应用程序可以处理客户端浏览器输入的数据,从而完成客户端与服务器的交互操作。而CGI规范就定义了Web服务器如何向扩展应用程序发送消息,在收到扩展应用程序的信息后又如何进行处理等内容。通 过CGI可以提供许...
2019-05-24 11:45:06
1012
转载 linux c/c++程序员必须熟悉的开源项目
作为一个经验丰富的 Linux C/C++程序员, 肯定亲手写过各种功能的代码, 比如封装过数据库访问的类,封装过网络通信的类,封装过日志操作的类, 封 装过文件访问的类, 封装过 UI 界面库等, 也在实际的项目中应用过,但是回过头仔细想想,其实以前自己写过的这些代码,只能是在特定的项目或者特定 的环境中使用, 对于自己来说, 在不同的项目中应用,只需要复制代码, 改改也就可以了, ...
2019-05-23 20:22:01
167
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人