随笔 - 632  文章 - 17  评论 - 54  阅读 - 93万

随笔分类 -  C/C++

上一页 1 ··· 3 4 5 6 7 8 9 10 下一页
拓展Android应用!
使用C语言进行udp通信
摘要:一、概述 UDP协议简单介绍: 1.UDP协议是用户数据报协议,面向无连接的、不稳定、不可靠、不安全的数据报传递 更像是是收发短信。 2.UDP传输不需要建立连接,传输效率更高,在稳定的局域网内环境相对可靠 3.UDP天然支持多客户端 C语言UDP函数介绍: ssize_t recvfrom(int 阅读全文
posted @ 2021-12-20 10:14 飘杨...... 阅读(2780) 评论(0) 推荐(0) 编辑
使用epoll实现聊天服务
摘要:一、概述 1.epoll函数及相关结构体介绍 多路IO-epoll 将检测文件描述符的变化委托给内核去处理, 然后内核将发生变化的文件描述符对应的事件返回给应用程序. (通俗点讲就是我们不用关心文件描述符的变化了,内核帮我们干了,并且内核把那些有变化的具体的文件描述符都会返回回来) 函数介绍: in 阅读全文
posted @ 2021-12-15 10:43 飘杨...... 阅读(260) 评论(0) 推荐(0) 编辑
使用poll实现聊天服务
摘要:一、概述 poll函数介绍: int poll(struct pollfd *fds, nfds_t nfds, int timeout); 函数说明: 跟select类似, 监控多路IO, 但poll不能跨平台. 参数说明: fds: 传入传出参数, 实际上是一个结构体数组 fds.fd: 要监控 阅读全文
posted @ 2021-12-15 10:00 飘杨...... 阅读(173) 评论(0) 推荐(0) 编辑
C语言select实现高并发服务器
摘要:一、概述 除了使用多线程或者多进程技术,我们是否还可以使用其他的方法来实现服务端连接多个客户端呢?答案是肯定的,那就是多路IO技术select。 多路IO技术: select, 同时监听多个文件描述符, 将监控的操作交给内核去处理, 数据类型fd_set: 文件描述符集合--本质是位图(关于集合可联 阅读全文
posted @ 2021-12-13 14:32 飘杨...... 阅读(1204) 评论(0) 推荐(0) 编辑
C多进程实现聊天服务
摘要:一、概述 案例:使用多进程实现聊天服务。要求:可以有多个客户端连接,且客户端发送什么数据服务端就回复什么数据 实现步骤: 1.创建监听文件描述符socket 2.绑定端口bind 3.监听端口listen 4.当接受到一个连接时开启一个子进程来实现,来实现和客户端的通讯(fork) 5.具体客户端通 阅读全文
posted @ 2021-12-13 13:39 飘杨...... 阅读(76) 评论(0) 推荐(0) 编辑
C语言实现多线程版聊天服务
摘要:一、概述 案例:C+pthread+socket实现多线程聊天服务,要求:服务端可以连接多个客户端,客户端发的消息,服务端再转发给客户端。 实现步骤: 1.创建监听文件描述符socket 2.绑定端口bind 3.监听端口listen 4.接收客户端请求,并在新的线程中执行(pthread+acce 阅读全文
posted @ 2021-12-13 13:35 飘杨...... 阅读(423) 评论(0) 推荐(0) 编辑
C使用信号量实现生产者消费者模型
摘要:一、概述 案例:编写一个案例代码,使用信号量(sem_t)来实现生产者消费者模型。 信号量:相当于多把锁,可以理解为加强版的互斥锁,其在一定程度上可以提高并发的效率 相关函数介绍: 相关函数 定义信号量 sem_t sem; int sem_init(sem_t *sem, int pshared, 阅读全文
posted @ 2021-12-03 10:02 飘杨...... 阅读(383) 评论(0) 推荐(0) 编辑
C实现读写锁
摘要:一、概述 案例:编写一个案例测试读写锁,要求:新建三个线程写,5个线程读,来测试读写锁。 读写锁的基本概念: 读写锁也叫共享-独占锁。当读写锁以读模式锁住时,它是以共享模式锁住的;当它以写模式锁住时,它是以独占模式锁住的。写独占,读共享。 读写锁的使用场合: 对数据结构读的次数远大于写的情况 读写锁 阅读全文
posted @ 2021-12-01 14:42 飘杨...... 阅读(1981) 评论(0) 推荐(0) 编辑
使用PThread+消息队列创建一个生产者消费者模型
摘要:一、概述 案例:使用pthread+消息队列(单链表环形队列) 实现生产者消费者模型 各个类的职责说明: 1.message_queue.cpp消息队列 ps:这个类最主要的方法有两个(这个类是线程安全的),一个是enqueueMessage(Message)向消息队列中放入数据,另一个是deque 阅读全文
posted @ 2021-11-22 16:53 飘杨...... 阅读(701) 评论(0) 推荐(0) 编辑
C使用sprintf函数拼接字符串或者字符串和其他数据类型拼接
摘要:一、概述 案例:1.将两个字符串拼接起来 2.将一个字符串和一个int类型的数据拼接起来 二、代码示例 1.拼接两个字符串 void test2(){ char str1[10]="洛洛杨"; char str2[10] = "我儿子"; char buffer[20]; sprintf(buffe 阅读全文
posted @ 2021-11-22 16:20 飘杨...... 阅读(2540) 评论(0) 推荐(0) 编辑
Linux注册信号处理函数
摘要:一、概述 案例:编写一个小例子,注册一个信号处理函数,处理进程中断信号(SIGINT),我们运行程序后按住Ctrl+C不能退出这个程序,因为我们在代码中已经对这个信号进行捕获了。,捕获之后它就只走我们自己的逻辑而不走系统默认的逻辑。 信号机制: 进程A给进程B发送信号,进程B收到信号之前执行自己的代 阅读全文
posted @ 2021-11-19 10:55 飘杨...... 阅读(1245) 评论(0) 推荐(0) 编辑
使用mmap函数建立共享映射区,实现两个不相干的进程之间通讯
摘要:一、概述 案例:使用mmap建立共享映射区,实现两个不相干的进程之间通讯。 存储映射I/O (Memory-mapped I/O) 使一个磁盘文件与存储空间中的一个缓冲区相映射。从缓冲区中取数据,就相当于读文件中的相应字节;将数据写入缓冲区,则会将数据写入文件。这样,就可在不使用read和write 阅读全文
posted @ 2021-11-19 10:40 飘杨...... 阅读(229) 评论(0) 推荐(0) 编辑
android使用opengles渲染一张图片
摘要:一、概述 案例:使用opengles+egl渲染一张图片 关键类介绍: 1.新建一个DrawPictureActivity.java用于充当显示容器:初始化SurfaceView并设置SurfaceView的callback回调函数。并在其onSurfaceCreated函数中对DrawPictur 阅读全文
posted @ 2021-11-19 10:09 飘杨...... 阅读(1743) 评论(0) 推荐(0) 编辑
android opengles绘制三角形(四边形)
摘要:一、概述 案例:编写一个opengles程序绘制一个三角形、四边形。其中opengles上下文环境及窗口管理由我们自己来维护。即通过SurfaceView+EGL+OpenGL ES来实现绘制一个三角形(四边形) 制作步骤: 1.创建Activity并为这个Activity创建一个布局,在布局中写一 阅读全文
posted @ 2021-11-17 10:05 飘杨...... 阅读(915) 评论(0) 推荐(0) 编辑
C/C++使用FIFO实现非父子进程之间的通讯
摘要:一、概述 案例:编写两个进程,要求实现两个进程之间的通讯,A进程循环写数据,B进程循读取管道中的数据。 fifo简单介绍:使用fifo这个系统提供的Api函数可实现两个进程之间的相互通讯。其通讯原理是通过mkfifo函数创建一个fifo文件,进程A和进程B通过操作者fifo文件来完成双方的通信。由于 阅读全文
posted @ 2021-11-16 09:59 飘杨...... 阅读(893) 评论(0) 推荐(0) 编辑
Linux使用pipe管道实现父子进程之间通讯
摘要:一、概述 管道的基本概念理解: 1.管道本质上是一块内核缓冲区(一端将数据写入内核,另一端从内核中读取数据),内部的实现是环形队列 2.管道有读写两端,读写两端是两个文件描述符 3.数据的流向是从管道的写端流到管道的读端(数据的流向是单向的) 4.数据被读走了之后,在管道中就消失了 5.pipe只能 阅读全文
posted @ 2021-11-11 09:40 飘杨...... 阅读(824) 评论(0) 推荐(0) 编辑
C++ map集合练习
摘要:一、概述 案例:C++ map集合练习测试 二、示例代码 #include <iostream> #include <map> using namespace std; void test(){ map<int,int> m; //第一种插入方式 m.insert(pair<int,int>(1,1 阅读全文
posted @ 2021-10-20 14:38 飘杨...... 阅读(225) 评论(0) 推荐(0) 编辑
C++ set集合测试
摘要:一、概述 案例:c++ stl之set集合练习 二、代码示例 #include <iostream> #include <set> #include <string> using namespace std; //打印set元素 void printSet(set<int> &s){ for(set 阅读全文
posted @ 2021-10-20 14:19 飘杨...... 阅读(86) 评论(0) 推荐(0) 编辑
C++ queue练习
摘要:一、概述 案例:c++测试queue的用法 二、代码 #include <iostream> #include <queue> #include <string> using namespace std; class Person{ public: Person(string name,int ag 阅读全文
posted @ 2021-10-20 13:09 飘杨...... 阅读(66) 评论(0) 推荐(0) 编辑
C++ stack集合练习
摘要:一、概述 栈:一个先进后出或者后进先出的集合,提供的方法有入栈出栈等操作。 案例:编写一个小案例将数据压入集合,然后不断拿到栈内元素。 二、示例图片 三、示例代码 #include <iostream> #include <stack> using namespace std; void print 阅读全文
posted @ 2021-10-20 11:28 飘杨...... 阅读(77) 评论(0) 推荐(0) 编辑

上一页 1 ··· 3 4 5 6 7 8 9 10 下一页
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示