- 博客(30)
- 收藏
- 关注
原创 TCP文件传输黏包
黏包有两种:一种是因为发送数据包时,每次发送的包小,因为系统进行优化算法,就将两次的包放在一起发送,减少了资源的重复占用。多次发送会经历多次网络延迟,一起发送会减少网络延迟的次数。因此在发送小数据时会将两次数据一起发送,而客户端接收时,则会一并接收。#即出现多次send会出现黏包第二种是因为接收数据时,又多次接收,第一次接收的数据量小,导致数据还没接收完,就停下了,剩余的数据会缓存在内存中...
2019-09-15 14:59:56
268
原创 select、poll、epoll之间的区别
1、支持一个进程所能打开的最大连接数select单个进程所能打开的最大连接数有FD_SETSIZE宏定义,其大小是32个整数的大小(在32位的机器上,大小就是3232,同理64位机器上FD_SETSIZE为3264),当然我们可以对进行修改,然后重新编译内核,但是性能可能会受到影响,这需要进一步的测试。pollpoll本质上和select没有区别,但是它没有最大连接数的限制,原因是...
2019-09-14 10:29:41
213
原创 区块链
区块链一、简介概述区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。含义狭...
2019-09-04 23:56:40
251
原创 Makefile简介
Makefile 是和 make 命令一起配合使用的.很多大型项目的编译都是通过 Makefile 来组织的, 如果没有 Makefile, 那很多项目中各种库和代码之间的依赖关系不知会多复杂.Makefile的组织流程的能力如此之强, 不仅可以用来编译项目, 还可以用来组织我们平时的一些日常操作. 这个需要大家发挥自己的想象力.1.1 Makefile 主要的 5个部分 (显示规则,...
2019-09-02 23:10:47
131
原创 QT信号槽connect函数
使用QT开发时,通常使用connect函数只传递四个参数:connect(Sender,SIGNAL(signal),Receiver,SLOT(slot));所以我们有可能认为该函数就只有四个参数,但实际上是有第五个参数的,只是通常该函数已经给第五个参数赋值了而已,我们所使用的是默认值sender和receiver是QObject对象指针,函数里面我们用到了Qt提供的两个宏SIGNA...
2019-08-22 11:24:46
339
原创 Linux下基于C语言的即时通讯软件
1、基本功能 登录、注册、私聊、群聊、注册vip、禁言、踢人、发送表情、发送短语、查询聊天记录、文件传输。2、相关知识点 C/S架构 TCP、sqlite3、socket、基本文件操作 Makefile工程管理器进行项目工程管理, 用户界面友好美观动态显示3、基本思想 三次握手、四次挥手...
2019-08-21 00:22:02
784
转载 线程池
在Unix网络编程中,线程与进程用于处理各项分支子功能,我们通常的操作是:接收消息 ==> 消息分类 ==> 线程创建 ==> 传递消息到子线程 ==> 线程分离 ==> 在子线程中执行任务 ==> 任务结束退出;对大多数小型局域网的通信来说,上述方法足够满足需求;但当我们的通信范围扩大到广域网或大型局域网通信中时,我们将面临大量消息频繁请求服务器;在这种情...
2019-08-20 21:59:01
98
原创 8.18 epoll总结
1、epoll用到的3个API以及头文件#include <sys/epoll.h>int epoll_create(int size);int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);int epoll_wait(int epfd, struct epoll_event * events,...
2019-08-18 20:10:15
147
原创 8.17 连接池总结
连接池用于创建和管理数据库连接的缓冲池技术,缓冲池中的连接可以被任何需要他们的线程使用。当一个线程需要用JDBC对一个数据库操作时,将从池中请求一个连接。当这个连接使用完毕后,将返回到连接池中,等待为其他的线程服务。连接池的主要优点有以下三个方面。第一、减少连接创建时间。连接池中的连接是已准备好的、可重复使用的,获取后可以直接访问数据库,因此减少了连接创建的次数和时间。第二、...
2019-08-17 20:34:58
123
转载 8.15学习总结
Linux平台下线程池的原理及实现什么时候需要创建线程池呢?简单的说,如果一个应用需要频繁的创建和销毁线程,而任务执行的时间又非常短,这样线程创建和销毁的带来的开销就不容忽视,这时也是线程池该出场的机会了。如果线程创建和销毁时间相比任务执行时间可以忽略不计,则没有必要使用线程池了。 下面是Linux系统下用C语言创建的一个线程池。线程池会维护一个任务链表(每个CThread_worker...
2019-08-16 00:54:29
131
原创 8.12学习总结
1、fflush()函数:更新缓冲区头文件:#include<stdio.h>定义函数:int fflush(FILE * stream);函数说明:fflush()会强迫将缓冲区内的数据写回参数stream指定的文件中,如果参数stream为NULL,fflush()会将所有打开的文件数据更新。返回值:成功返回0,失败返回EOF,错误代码存于errno中。fflush(...
2019-08-13 09:31:02
217
原创 学习日志 姓名:王鹏 日期:2018.9.23
今日学习任务 了解掌握5个系统安全相关命令 今日任务完成情况 (详细说明本日任务是否按计划完成,开发的代码量) 在VM虚拟机中尝试运用passwd、su、umask、chgrp、chmod 今日开发中出...
2018-09-27 20:21:20
144
原创 学习日志 姓名:王鹏 日期:2018.9.22
今日学习任务 了解掌握5个系统管理相关命令 今日任务完成情况 (详细说明本日任务是否按计划完成,开发的代码量) 在VM虚拟机中尝试运用df、top、free、quota、at 今日开发中出现的问题...
2018-09-27 17:24:40
119
原创 学习日志 姓名:王鹏 日期:2018.9.21
今日学习任务 掌握5个文件处理命令 今日任务完成情况 (详细说明本日任务是否按计划完成,开发的代码量) 学习了file、mkdir、grep、dd、find 今日开发中出现的问题汇总 ...
2018-09-27 16:50:42
255
原创 stm32单片机学习日志 王鹏 2018.07.27
今日学习任务 用四个按键连接到EXTI上用于产生中断控制四个LED灯的亮灭。 今日任务完成情况 (详细说明本日任务是否按计划完成,开发的代码量。) 采用exit中断实现四个按键同一优先级控制LED灯。 基本要求与内容都实现,并且可以通过串口发送,且可以实现LED流水灯等形式。...
2018-07-27 21:41:58
213
原创 stm32单片机学习日志 王鹏 2018.07.26
今日学习任务 Stm32SysTick中断、NVIC中断、printf串口程序以及exit中断。 今日任务完成情况 (详细说明本日任务是否按计划完成,开发的代码量。) 理解了SysTick中断、NVIC中断、printf串口程序以及exit中断的原理及基本内容。USART串口实现接受功能Exit...
2018-07-26 21:31:46
200
原创 stm32单片机学习日 王鹏 2018.07.25
今日学习任务 Stm32固件库编程及GPIO、RRC时钟、systick定时器知识的了解。 今日任务完成情况 (详细说明本日任务是否按计划完成,开发的代码量。) 学会使用固件库编程实现LED灯的点亮和闪烁。RRC系统时钟的设置及原理。定时器程序。 今日开发中遇到的...
2018-07-25 21:23:24
152
原创 stm32学习日志 王鹏 2018.07.24
今日学习任务 Stm32编成点亮四个灯并实现流水灯。 今日任务完成情况 (详细说明本日任务是否按计划完成,开发的代码量。) 能够编程实现四个灯的点亮。 能够编成实现流水灯程序。 今日开发中遇到的问题汇总 报错无法找到bsp.o文件。...
2018-07-24 21:25:13
205
原创 stm学习日志 王鹏 2018.07.23
今日学习任务 Stm32基本理论知识及安装环境的了解。 今日任务完成情况 (详细说明本日任务是否按计划完成,开发的代码量。) stm32基本理论知识的了解。 运行环境的安装。 用寄存器点亮一个灯。 写一个固件库模板。 今日开发中遇到的问题汇总 ...
2018-07-23 21:40:47
159
原创 单片机学习日志 王鹏 2018.07.19
今日学习任务 中断及定时器工作原理。 今日任务完成情况 (详细说明本日任务是否按计划完成,开发的代码量。) 外部中断的原理及应用。 定时器中断的原理及应用。 中断优先级。 今日开发中遇到的问题汇总 六个二极管动态点亮最后两个始终无法点亮。...
2018-07-19 21:42:20
165
原创 单片机学习日志 王鹏 2018.07.18
今日学习任务 单片机数码管的使用及实现计算器的操作。 今日任务完成情况 (详细说明本日任务是否按计划完成,开发的代码量。) 根据老师编写的代码为基础,已经实现部分功能。 今日开发中遇到的问题汇总 当数字位数变多时,数码管显示不正常。 ...
2018-07-18 20:21:22
140
原创 单片机学习日志 王鹏 2018.01.17
今日学习任务 用矩阵按键控制LED灯按二进制形式点亮设计。 今日任务完成情况 (详细说明本日任务是否按计划完成,开发的代码量。) 有些地方完成的还不是特别好,比如总是会有其他的地方不按照设想的样子点亮。 今日开发中遇到的问题汇总 不能将数字按键和确...
2018-07-17 20:52:24
166
原创 单片机学习日志 王鹏 2018.07.16
今日学习任务 单片机概念原理介绍及仿真软件的使用 今日任务完成情况 (详细说明本日任务是否按计划完成,开发的代码量。) 1、仿真环境操作流程。 2、单片机仿真原理。 3、LED灯原理介绍及点亮仿真。 4、蜂鸣器原理介绍及仿真。 5、独立按键与矩阵按键。 ...
2018-07-16 21:58:41
197
原创 作业2 字符串训练 王鹏 2018.07.15
请编写一个c语言函数,该函数将一个字符串逆序。#include<stdio.h> #define SIZE 5 int main(){ char str[SIZE];int i; printf("请输入一个字符串:\n");scanf("%s",str); printf("逆序字符串:\n"); for(i=SIZE-1;i>=0;i--){printf("%c...
2018-07-15 21:04:09
157
原创 作业1 王鹏 2018.07.14
1. 题目:通过编程实现,统计1~n有多少个9 提示:n通过参数传入#include <stdio.h>int main(){ int n,b; int a; int i; int sum = 0; printf("please input n :\n"); //提示输入n scanf("%d",&n); for(i = 1; i <= ...
2018-07-14 21:27:41
295
原创 学习日志 姓名: 王鹏 日期: 2017.07.13
今日学习任务结构体、结构体和链表、内存管理、关键字union、enum、typedef等。 今日任务完成情况(详细说明本日任务是否按计划完成,开发的代码量。) 1、结构体概念的介绍、结构体的定义,以及使用头文件中结构体的方法。2、结构体的声明、结构体变量、指针数组的定义及初始化。3、结构体的内存分配及长度的计算。4、c语言中的内存管理。5、共用体的声明及其用法。今日开发中遇到的问题汇总1、结构体总...
2018-07-13 22:11:59
142
原创 学习日志 姓名: 王鹏 日期: 2017.07.12
今日学习任务指针与数组、指针与函数、指针的内存分配。 今日任务完成情况(详细说明本日任务是否按计划完成,开发的代码量。) 1、详细了解昨晚布置的字符串逆序输出程序作业。2、函数和指针的关系,包括函数指针及指针函数。3、指针数组与数组指针。4、main函数。今日开发中遇到的问题汇总1、指针函数的定义与正确调用实现。2、指针中的值传递与地址传递。今日未解决问题无今日开发收获1、函数指针变量定义的一般形...
2018-07-12 21:57:51
164
原创 学习日志 姓名: 王鹏 日期: 2018.07.11
今日学习任务指针、指针和变量、指针和数组、指针和字符串 今日任务完成情况(详细说明本日任务是否按计划完成,开发的代码量。) 1、基本掌握指针定义与运算2、基本掌握指针变量的使用步骤3、了解指针引用数组元素的方法4、理解字符数组与字符串的区别 今日开发中遇到的问题汇总1、 今日未解决问题1、 今日开发收获1、自我评价(是否规范完成指定任务,需要改进的地方,与他人合作等。)指针比较难,还...
2018-07-11 22:48:33
127
原创 学习日志 姓名: 王鹏 日期: 2018.07.10
今日学习任务数组与函数 今日任务完成情况(详细说明本日任务是否按计划完成,开发的代码量。) 1、了解一维数组与二维数组的概念2、局部变量与全局变量的定义3、形参与实参的使用4、如何构造函数5、如何调用函数 今日开发中遇到的问题汇总1、传值部分,没有注意到值传递和地址传递2、 今日未解决问题 今日开发收获1、自我评价(是否规范完成指定任务,需要改进的地方,与他人合作等。) ...
2018-07-10 22:49:26
122
原创 学习日志 姓名: 王鹏 日期: 2018.07.09
今日学习任务c语言基础知识的学习,包括:基本数据类型,算术运算符、循环语句、及break、continue语句。 今日任务完成情况(详细说明本日任务是否按计划完成,开发的代码量。) 1、学习了c语言中的三种数据类型。2、掌握了关键字sizeof以及库函数strlen的用法。3、学习了数据的基本运算规则。4、学会使用break、continue语句。5、完成了老师布置的作业。 今日开发中遇...
2018-07-09 22:46:51
177
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人