- 博客(16)
- 收藏
- 关注
原创 串口通信(qt/c++)
将 工程目下release 结尾的文件夹打开 再打开里面的release 文件夹找到exe文件 将其放入到新建文件夹中。同时在pro工程文件中 加入 serialport 模块 不然无法使用串口的相关函数。本文 源自于 个人对串口通信好奇 完成的简单程序 参考了知乎的这位博主的文章 写的很好。首先在构建中将代码从debug点击到release状态。运行之后在我们工程目录创建一个新的文件夹。以下是 Widget.cpp的代码。这里是 widget.h的代码。
2023-09-23 17:57:34 364
原创 网络io与io多路复用select/poll/epoll
netstat -anop | grep 9999 监听端口9999应用层有多少个fd相对的epoll集合中就得有多少个fd 一一对应d。
2023-08-29 00:17:55 81
原创 C/C++之测试用例的编写
一个基本的客户端对服务端自动发送测试语句接收测试数据的用例。断眼 assert() 用于调试debug。关于连接开了一定要close。
2023-08-18 19:30:27 344
原创 设计模式-上
主要出现在子类覆盖父类实 现,原来使用父类型的程序可能出现错误;覆盖了父类方法却没 有实现父类方法的职责;定义对象间的一种一对多(变化)的依赖关系,以便当一个对 象(Subject)的状态发生改变时,所有依赖于它的对象都得到通 知并自动更新。早绑定是指基类指针中没有虚函数 会将yyy强制转换为xxx类型 早绑定实际上就是强制转换。virtual:虚方法前缀 可让该方法在继承父类后复写父类中的方法。对于稳定点采用对父类进行抽象 子类去继承复写基类方法。protected:用户不可访问接口 子类可以访问。
2023-08-08 21:07:57 42
原创 Linux+C/C++ 服务器之B树
/n+1叉树 key = n个//n个//分n+1叉int num;//判断节点中存储了多少个数据int leaf;//判断是否是叶子节点int t;} btree;
2023-07-29 19:56:54 58
原创 Linux+C的服务器之数据结构中的红黑树
/定义一个红黑树的模板文件//用来定义key的任意类型// value#if 1 //适合单个红黑树//rbtree#else //可重复利用避免多次构建导致代码冗余// end//// NULL} rbtree;
2023-07-25 18:34:54 49
原创 TCP服务器
sockfd可以找到一个(远程ip,远程端口,本机ip,本机端口,proto)五元组和sockfd是一对一的关系recv和send分别通过sockfd找到相对应的五元组进行数据访问。2.查看 fd的属性fs.file-max cat /proc/sys/fs/file-max 与file-max无关。尝试修改nf_conntrack_max:vim /etc/svsctl.conf 在最后加入。永久修改:在/etc/security/limits.conf这个文件 中 最后一行加入这两行。
2023-07-18 22:18:30 99
原创 TCP实现http请求
/正式主机名//主机别名//主机IP地址类型:IPV4-AF_INET//主机IP地址字节长度,对于IPv4是四字节,即32位//主机的IP地址列表#define h_addr h_addr_list[0] //保存的是IP地址//地址族//端口号//32位IP地址//预留未使用//32位IPv4地址。
2023-07-16 21:38:12 497
原创 使用upd实现DNS请求
本文代码注意片段 dns_parse_name(),dns_parse_response();查看网址对应的IP 格式:nslookup www.xxx.com。nslookup 用来在cmd中。
2023-07-13 15:18:22 147
原创 MySQL存储图片读取图片
读写流程图如何从磁盘中读取图片数据//从选取的文件中读取图片数据int ReadImg(char *filename ,char *buffer) //filename:用来存储 Path+filename buffer:用来存储{ if (NULL == filename || buffer == NULL) { return -1; } //打开文件 FILE* fp = fopen(filename, "rb");//rb 以读的方式打开 //判断是否成功打开了文件
2023-07-05 23:05:24 1959
原创 并发(锁)
获取自旋锁时,如果发现自旋锁已经被其他线程持有,则当前线程会一直处于忙等状态,直到自旋锁被释放为止。因为自旋锁不涉及内核态切换,所以相较于互斥锁而言,可以避免系统调用的开销,在保护小型临界区时效率更高。因为 count是一个线程共用的临界资源所以需要对其加锁 使得在线程1调用count的时候线程2无法调用 效果类似于sql的锁 在调用前加锁 调用完成后解锁。但事实上 在执行线程1的过程中(未执行完线程1的指令) 插入线程2的指令 导致程序同一个数重复执行。类似于while(1);课后了解 CAS技术。
2023-06-15 20:19:40 32
原创 C语言之实现通讯录
在通讯录这个项目中我能够学到的是代码的分层(很重要的东西)也就是上文说软件的接口层业务层支持层 这个极大的优化了我个人写代码混乱的情况 其次是关于链表的使用还有关于文件保存 注意的是开启文件就要关文件,写入文件后一定要及时写入磁盘。程序可以被分为三层从上到下分别是业务逻辑层,接口层,支持层其中业务逻辑代表着用户去输入一些数据,传入数据进入接口层接口层接受到数据对应用户所想要的操作进行一定的逻辑操作,支持层是最底层的对文件的操作,数据存储。第一阶段 需求分析和架构设计。
2023-05-31 22:41:11 31
原创 第一天学习Linux之xshell通过ssd远程Linux和windows通过SMB协议访问Linux的共享文件夹
个人对于Linuxsmb服务的安装的实验报告
2023-05-21 21:12:30 365
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人