Linux网络编程
Linux网络学习记录
AlexanderGan
Focus on VM & Compiler Now.
展开
-
http服务器_Epoll类与Server类的实现(C++)
http服务器_Epoll类与Server类的设计与实现(C++)一、回顾Epoll的基础知识 请参见之前的博客文章《UNP学习_I/0复用之epoll函数实现回射服务器》二、代码讲解 很多的细节我会在注释中讲解。(1)Epoll Class://Epoll.h#ifndef __EPOLL_H__#define __EPOLL_H__#include <vector>#include <memory>#include <functional>原创 2021-02-09 21:15:56 · 495 阅读 · 1 评论 -
http服务器_简易定时器的设计与C++实现(ref muduo)
http服务器_图文详解定时器的设计与实现(C++)一、定时器的意义 在网络程序中经常需要处理定时事件,比如定时检测一个客户端连接的活动状态,或者设定时间关闭客户端连接等。服务器程序通常管理着大量的定时器,如何高效的组织和管理这些定时器,使得其能在预期的时间点被触发,而且不影响服务器的主要逻辑,对于服务器的性能有很大的影响。二、定时器管理的结构设计 传统的最简单的管理方式是采用按照时间排好序的线性表如排序链表,常用操作的复杂度为O(N)所以在管理大量的定时器时效率不高。 第二种方案是采用二叉原创 2021-01-09 15:41:07 · 398 阅读 · 0 评论 -
http服务器_图文详解简易Buffer设计与C++实现(ref muduo)
高性能http服务器_Buffer设计与实现(ref muduo)一、Buffer缓冲区存在的意义 高性能http服务器常见的模型就是基于event loop的reactor反应堆模型,采用IO 复用(linux一般是用epoll) + non-blocking IO 网络编程提高性能。non-blocking编程思想的核心在于避免线程阻塞在read、write等系统调用上,否则对之后的event就不能及时做出响应。IO线程只能阻塞在IO复用的函数上,如epoll_wait,所以每个TCP连接都必须要原创 2020-12-31 16:45:21 · 562 阅读 · 0 评论 -
UNP学习_组播服务器与客户端的实现
UNP学习_组播服务器与客户端的实现1.1 组播概述 组播是一种介于单播和广播之间的方案,多播地址表示一组主机IP接口,多拨数据报只由对他感兴趣的接口接收。组播可以在Internet和局域网使用。一个多播地址和一个UDP端口的组合称为组播会话(session)。1.2 组播地址1.2.1 IPv4的D类地址 IPv4的D类地址(224.0.0.0到239.255.255.255)是IPv4的组播地址。D类地址的低28位称为组ID(group ID),完整32位称为组地址(group addre原创 2020-08-22 14:47:20 · 1375 阅读 · 0 评论 -
UNP学习_UDP广播服务器和客户端的实现
UNP学习_UDP广播和组播服务器实现原创 2020-08-20 16:28:01 · 557 阅读 · 0 评论 -
UNP学习_I/0复用之epoll函数实现回射服务器
UNP学习_I/0复用之epoll函数实现回射服务器一、函数原型#include<sys/epoll.h>int epoll_create(int size);int epoll_ctl(int epfd,int op, int fd, struct epoll_event* event);int epoll_wait(int epfd, struct epoll_event* events, int maxevents, int timeout);struct epoll_原创 2020-08-15 11:13:12 · 306 阅读 · 0 评论 -
UNP学习_I/O复用之poll函数实现回射服务器
UNP学习_I/O复用之poll函数实现回射服务器1、函数原型:#include<poll.h>struct pollfd{ int fd;//文件描述符 short events;//等待的事件 short revents;//实际发生的事件};int poll(struct pollfd *fds,nfds_t nfds,int timeout);//fds: 数组地址//nfds: 数组的最大长度,数组中最后一个元素下标+1。内核会轮询fd数组中的每个文件描述符//t原创 2020-08-07 23:17:56 · 144 阅读 · 0 评论 -
UNP学习_I/O复用之select函数实现回射服务器
UNP学习_I/O复用之select和poll函数1、I/O复用模型 I/O复用是阻塞在select系统调用之上,而不是阻塞在真正的I/O系统调用之上。2、函数声明#<sys/select.h>#<sys/time.h>int select(int maxfdpl, fd_set* readset, fd_set* writeset, fd_set* exceptset, const struct timeval *timeout);struct time原创 2020-07-30 22:50:05 · 373 阅读 · 0 评论 -
UNP学习之多线程与多进程的回射服务器与客户端实现
UNP学习之多线程与多进程的回射服务器与客户端实现原创 2020-07-18 10:49:08 · 208 阅读 · 0 评论