Linux网络编程
文章平均质量分 87
Reicher
这个作者很懒,什么都没留下…
展开
-
Linux 服务器开发参考-c++
在C++开发中,原生的线程库主要有两个,一个是C++11提供的< thread>(std::thread类),另一个是Linux下的(pthread类)- 线程池概念及优点。原创 2024-08-10 19:21:08 · 362 阅读 · 0 评论 -
C++协程基础
通用的说法是协程是⼀种“轻量级线程”,用户态线程”。可以减少用户态与内核态的切换,相当于一个花里胡哨的函数。协程的本质就是函数和函数运行状态的组合。函数一旦被调用,则只能从头运行到结束协程可以执行到一半退出(yield),暂时让出CPU执行权;在后面适当时机可以重新恢复运行(resume)。这期间CPU可以运行其他协程。协程能够半路yield、再重新resume的关键是协程存储了函数在yield时间点的执⾏状态,这个状态称为协程上下文。通过记录当前执行状态下CPU全部寄存器的值来实现。原创 2024-08-08 20:14:15 · 830 阅读 · 0 评论 -
Linux网络编程-HTTP编程
Linux网络编程(HTTP协议)Linux网络编程----http网络编程之http服务器(C/C++)(基于libevent实现)使用c++手把手实现一个简单的http服务器原创 2024-08-10 20:35:28 · 164 阅读 · 0 评论 -
Linux网络编程-多线程编程
在C++开发中,原生的线程库主要有两个,一个是C++11提供的< thread>(std::thread类),另一个是Linux下的(pthread类)信号量主要就是用来保护共享资源的,也就是说如果你想限制某个(些)资源在同一时刻只能有一(多)个线程拥有,就可以使用信号量。当然也可以用作让一个线程等待另一个线程完成某项工作。主要用下面一组函数(系统调用)来实现。原创 2024-07-30 15:53:14 · 375 阅读 · 0 评论 -
Linux网络编程-socket网络编程
每创建一个epoll句柄,会占用一个fd,因此当不再需要时,应使用close关闭epoll_create()返回的文件描述符,否则可能导致fd被耗尽。使用sockaddr_in结构体时,需要将其类型转换为sockaddr类型,因为套接字API中的大多数函数都需要传入sockaddr类型的指针作为参数。使用时,用户可以将自己需要的数据存放到这个字段中,当事件触发时,epoll系统调用会返回这个数据,以便用户处理事件。如果函数调用成功,会返回一个标识这个套接字的文件描述符,失败的时候返回-1。原创 2024-07-30 15:53:38 · 944 阅读 · 0 评论 -
Linux网络编程-epoll
该文件描述符用于随后的所有对epoll的调用接口。每创建一个epoll句柄,会占用一个fd,因此当不再需要时,应使用close关闭epoll_create()返回的文件描述符,否则可能导致fd被耗尽。使用时,用户可以将自己需要的数据存放到这个字段中,当事件触发时,epoll系统调用会返回这个数据,以便用户处理事件。函数的返回值为 0 表示操作成功,-1 表示出现错误,具体的错误信息可以通过检查 errno 变量获得。data字段表示用户数据,它的类型是一个union,可以存放一个指针或文件描述符等数据。原创 2024-08-10 19:17:12 · 785 阅读 · 0 评论 -
tinyWebServer代码详解
以tinyWebServer为例,按代码逻辑顺序对代码进行详解。原创 2024-07-30 15:50:35 · 1119 阅读 · 0 评论