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

随笔分类 -  linux

1 2 下一页
shell脚本
腾讯云服务搭建coturn
摘要:一、概述 之前用的是阿里云的的服务系统是CentOS,服务到期后就没再续了(贵了),继而买了腾讯的云服务。为了使webrtc项目能够正常的启动起来,有必要配置一下coturn。腾讯云用的是ubuntu20 二、具体的步骤 1.安装coturn依赖库 sudo apt-get install libs 阅读全文
posted @ 2022-12-14 11:12 飘杨...... 阅读(1297) 评论(0) 推荐(0) 编辑
使用libevent实现一个简单的tcp服务端
摘要:一、概述 1.特点: 1.事件驱动、高性能、轻量级、专注于网络 2.源代码精炼、易读 3.跨平台 4.支持多种I/O多路复用技术,如epoll 、poll 、select等 5.支持I/O和信号等事件 2.使用libevent 函数之前需要分配一个或者多个 event_base 结构体, 每个eve 阅读全文
posted @ 2021-12-21 10:14 飘杨...... 阅读(978) 评论(0) 推荐(0) 编辑
使用C语言获取当前系统的libevent支持的异步IO模型有哪些
摘要:一、概述 案例:使用libevent获取当前系统支持异步IO模型有哪些(select/poll/epoll) 二、代码示例 //获取libevent支持的方法和当前系统使用的方法 #include <stdio.h> #include <stdlib.h> #include <string.h> # 阅读全文
posted @ 2021-12-20 14:45 飘杨...... 阅读(90) 评论(0) 推荐(0) 编辑
使用C语言实现本地socke通讯
摘要:一、概述 使用本地socket通讯可以实现进程之间的通讯。 相关函数描述如下: int socket(int domain, int type, int protocol); 函数说明: 创建本地域socket 函数参数: domain: AF_UNIX or AF_LOCAL type: SOCK 阅读全文
posted @ 2021-12-20 10:58 飘杨...... 阅读(935) 评论(0) 推荐(0) 编辑
使用C语言进行udp通信
摘要:一、概述 UDP协议简单介绍: 1.UDP协议是用户数据报协议,面向无连接的、不稳定、不可靠、不安全的数据报传递 更像是是收发短信。 2.UDP传输不需要建立连接,传输效率更高,在稳定的局域网内环境相对可靠 3.UDP天然支持多客户端 C语言UDP函数介绍: ssize_t recvfrom(int 阅读全文
posted @ 2021-12-20 10:14 飘杨...... 阅读(2763) 评论(0) 推荐(0) 编辑
使用epoll实现聊天服务
摘要:一、概述 1.epoll函数及相关结构体介绍 多路IO-epoll 将检测文件描述符的变化委托给内核去处理, 然后内核将发生变化的文件描述符对应的事件返回给应用程序. (通俗点讲就是我们不用关心文件描述符的变化了,内核帮我们干了,并且内核把那些有变化的具体的文件描述符都会返回回来) 函数介绍: in 阅读全文
posted @ 2021-12-15 10:43 飘杨...... 阅读(256) 评论(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 飘杨...... 阅读(168) 评论(0) 推荐(0) 编辑
C语言select实现高并发服务器
摘要:一、概述 除了使用多线程或者多进程技术,我们是否还可以使用其他的方法来实现服务端连接多个客户端呢?答案是肯定的,那就是多路IO技术select。 多路IO技术: select, 同时监听多个文件描述符, 将监控的操作交给内核去处理, 数据类型fd_set: 文件描述符集合--本质是位图(关于集合可联 阅读全文
posted @ 2021-12-13 14:32 飘杨...... 阅读(1198) 评论(0) 推荐(0) 编辑
C多进程实现聊天服务
摘要:一、概述 案例:使用多进程实现聊天服务。要求:可以有多个客户端连接,且客户端发送什么数据服务端就回复什么数据 实现步骤: 1.创建监听文件描述符socket 2.绑定端口bind 3.监听端口listen 4.当接受到一个连接时开启一个子进程来实现,来实现和客户端的通讯(fork) 5.具体客户端通 阅读全文
posted @ 2021-12-13 13:39 飘杨...... 阅读(72) 评论(0) 推荐(0) 编辑
C语言实现多线程版聊天服务
摘要:一、概述 案例:C+pthread+socket实现多线程聊天服务,要求:服务端可以连接多个客户端,客户端发的消息,服务端再转发给客户端。 实现步骤: 1.创建监听文件描述符socket 2.绑定端口bind 3.监听端口listen 4.接收客户端请求,并在新的线程中执行(pthread+acce 阅读全文
posted @ 2021-12-13 13:35 飘杨...... 阅读(415) 评论(0) 推荐(0) 编辑
C使用信号量实现生产者消费者模型
摘要:一、概述 案例:编写一个案例代码,使用信号量(sem_t)来实现生产者消费者模型。 信号量:相当于多把锁,可以理解为加强版的互斥锁,其在一定程度上可以提高并发的效率 相关函数介绍: 相关函数 定义信号量 sem_t sem; int sem_init(sem_t *sem, int pshared, 阅读全文
posted @ 2021-12-03 10:02 飘杨...... 阅读(378) 评论(0) 推荐(0) 编辑
C实现读写锁
摘要:一、概述 案例:编写一个案例测试读写锁,要求:新建三个线程写,5个线程读,来测试读写锁。 读写锁的基本概念: 读写锁也叫共享-独占锁。当读写锁以读模式锁住时,它是以共享模式锁住的;当它以写模式锁住时,它是以独占模式锁住的。写独占,读共享。 读写锁的使用场合: 对数据结构读的次数远大于写的情况 读写锁 阅读全文
posted @ 2021-12-01 14:42 飘杨...... 阅读(1970) 评论(0) 推荐(0) 编辑
使用PThread+消息队列创建一个生产者消费者模型
摘要:一、概述 案例:使用pthread+消息队列(单链表环形队列) 实现生产者消费者模型 各个类的职责说明: 1.message_queue.cpp消息队列 ps:这个类最主要的方法有两个(这个类是线程安全的),一个是enqueueMessage(Message)向消息队列中放入数据,另一个是deque 阅读全文
posted @ 2021-11-22 16:53 飘杨...... 阅读(693) 评论(0) 推荐(0) 编辑
Linux注册信号处理函数
摘要:一、概述 案例:编写一个小例子,注册一个信号处理函数,处理进程中断信号(SIGINT),我们运行程序后按住Ctrl+C不能退出这个程序,因为我们在代码中已经对这个信号进行捕获了。,捕获之后它就只走我们自己的逻辑而不走系统默认的逻辑。 信号机制: 进程A给进程B发送信号,进程B收到信号之前执行自己的代 阅读全文
posted @ 2021-11-19 10:55 飘杨...... 阅读(1239) 评论(0) 推荐(0) 编辑
使用mmap函数建立共享映射区,实现两个不相干的进程之间通讯
摘要:一、概述 案例:使用mmap建立共享映射区,实现两个不相干的进程之间通讯。 存储映射I/O (Memory-mapped I/O) 使一个磁盘文件与存储空间中的一个缓冲区相映射。从缓冲区中取数据,就相当于读文件中的相应字节;将数据写入缓冲区,则会将数据写入文件。这样,就可在不使用read和write 阅读全文
posted @ 2021-11-19 10:40 飘杨...... 阅读(220) 评论(0) 推荐(0) 编辑
C/C++使用FIFO实现非父子进程之间的通讯
摘要:一、概述 案例:编写两个进程,要求实现两个进程之间的通讯,A进程循环写数据,B进程循读取管道中的数据。 fifo简单介绍:使用fifo这个系统提供的Api函数可实现两个进程之间的相互通讯。其通讯原理是通过mkfifo函数创建一个fifo文件,进程A和进程B通过操作者fifo文件来完成双方的通信。由于 阅读全文
posted @ 2021-11-16 09:59 飘杨...... 阅读(889) 评论(0) 推荐(0) 编辑
Linux使用pipe管道实现父子进程之间通讯
摘要:一、概述 管道的基本概念理解: 1.管道本质上是一块内核缓冲区(一端将数据写入内核,另一端从内核中读取数据),内部的实现是环形队列 2.管道有读写两端,读写两端是两个文件描述符 3.数据的流向是从管道的写端流到管道的读端(数据的流向是单向的) 4.数据被读走了之后,在管道中就消失了 5.pipe只能 阅读全文
posted @ 2021-11-11 09:40 飘杨...... 阅读(819) 评论(0) 推荐(0) 编辑
posix实现最简单的生产者消费者模型
摘要:一、概述 案例:使用posix线程模型,实现一个最简单的生产者消费者模型。用一个全局的int类型的变量来表示产品。用一个生产者线程生产产品,初始产品数量为0,只有当生产10个产品的时候,消费者线程才会启动,开始消费。 当消费者线程把产品消费完(产品数为0)的时候通知生产者继续生产产品,生产到10个再 阅读全文
posted @ 2021-10-18 16:08 飘杨...... 阅读(105) 评论(0) 推荐(0) 编辑
posix线程模型使两个线程共同完成从0~100的相加任务之和
摘要:一、概述 案例:使用posix线程模型编写一小案例:两个线程做加和操作,其中一个线程从1加到50,另外一个线程从51加到100.使其最后结果等于5050 二、示例代码 // 创建两个线程共同操作0~100相加 // Created by wei.yang on 2021/10/15. // #inc 阅读全文
posted @ 2021-10-15 13:26 飘杨...... 阅读(90) 评论(0) 推荐(0) 编辑
posix线程模型之创建一个简单的线程
摘要:一、概述 案例:使用posix线程模型创建一个线程,在线程执行方法中从0打印到9,并给执行方法传递参数。 二、示例图片 三、代码示例 // posix线程模型创建一个最简单的线程 // Created by wei.yang on 2021/10/15. // #include "create_a_ 阅读全文
posted @ 2021-10-15 10:31 飘杨...... 阅读(127) 评论(0) 推荐(0) 编辑

1 2 下一页
< 2025年2月 >
26 27 28 29 30 31 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 1
2 3 4 5 6 7 8

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