![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux编程
文章平均质量分 69
椛茶
音视频,RTC,后端开发,C++,golang
展开
-
IO多路复用(select)
IO 多路复用技术是指由进程通知内核监听指定的一个或多个 IO 事件,当 IO 事件发生时由内核通知唤醒进程,它一般用在一个进程需要同时监听处理多个 IO 事件的场景,与多进程或多线程的方式相比,使用 IO 多路复用技术无需创建多个进程或线程,减少系统开销。本文将介绍 select 函数的用法,它允许进程通知内核监听多个 IO 事件,并在事件发生或者设置的超时时间到达时唤醒进程处理。原创 2022-02-28 12:50:41 · 1250 阅读 · 0 评论 -
程序与进程
1.认识程序与进程当我们编写好一个 hello.c 文件后,使用 gcc hello.c -o hello 编译生成可执行的二进制文件,这个 hello 就叫做程序,当我们使用 ./hello 运行该程序后这个就叫做进程。程序是指编译好的二进制文件,存储在磁盘上,当它不运行的时候并不占用系统资源(比如 cpu,内存,打开的文件,设备,锁)。进程是一个抽象的概念,指的是程序的一次运行,所...原创 2019-05-03 22:07:45 · 195 阅读 · 0 评论 -
一个Linux TCP服务器程序的实现
1.前言 本文将介绍一个简单 Linux 服务器程序的实现,主要功能是只要客户端发送连接请求过来,就发送"Hello World"给客户端。2.一些简单概念套接字 在 TCP/IP 协议中,"IP+端口" 可以唯一标识网络通讯中的一个进程。套接字(socket)本身有插座的意思,它是用于进程间网络通讯的一种特殊文件类型,这种文件跟普通文件不一样,普...原创 2019-05-24 16:57:20 · 1739 阅读 · 0 评论 -
线程以及pthread库的使用
一.什么是线程 你可以想象你一边听歌一边打游戏,如果是操作系统会怎么做呢?先执行 ListenMusic 再执行 PlayGame,还是先执行 PlayGame 再执行 ListenMusic 呢?好像都不太合适。为了实现这个目的,就需要引入线程这个概念。线程是 CPU 调度的最小执行单位,你可以创建一个线程用于ListenMusic,再创建一个线程去PlayGame,这样操...原创 2019-06-09 15:01:34 · 14022 阅读 · 0 评论 -
IO多路复用技术(epoll)
IO多路复用技术 讲解 epoll 技术前,我们先了解一下什么是 IO 多路复用技术。 假设现在有一个服务器程序调用 accept 函数成功与客户端建立了连接,那么通过 accept 函数返回的通讯套接字,服务器就可以调用 write 往客户端写数据,也可以调用 read 读取从客户端发送过来的数据,这种单个线程去监听单个 IO 的读写情况我们就称为单路 IO ...原创 2019-06-26 23:18:10 · 1600 阅读 · 0 评论 -
epoll函数原理和使用介绍
在该博文中,我们已经了解了什么是 epoll 及其优点,那么实际应用应该如何编写代码呢?epoll 的编码离不开三个基本的函数:epoll_create,epoll_ctl,epoll_wait,下面将介绍epoll 这三个函数的使用。 有些 epoll 函数原理需要配合 epoll 函数的源码才能进行深入讲解,这里我们参考 Github 用户 wangboji...原创 2019-06-28 17:56:58 · 7330 阅读 · 0 评论 -
一个Linux TCP客户端程序的实现
一. 前言 在之前的博客介绍了一个简单 Linux 服务器程序的实现,光有服务器没有客户端是无法判断服务器的功能是否可用的,本文我们就写一个简单的客户端程序,可以与服务器进行简单的交互。二. 简单Linux客户端程序1. TCP客户端程序实现流程 之前的 TCP 服务器程序是监听 8080 端口,只要客户端发送数据过去就往客户端回复"Hello ...原创 2019-07-11 00:07:37 · 2147 阅读 · 0 评论