Linux网络编程
一个Linux网络编程小白的学习之路
supermario19
这个作者很懒,什么都没留下…
展开
-
半同步/半反应堆模型以及简单实现(二)
该模型不同于前文提到的半同步/半反应堆模型半同步/半反应堆模型以及简单实现(一)1. one thread one loop。主线程和每个工作线程之间都维持自己的事件循环,它们各自监听和处理不同的事件。2. 主线程只管理监听socket,连接socket由工作线程来处理。当有新的连接到来时,主线程就接受并将新返回的socket派发给某个工作线程,此后该socket上的任何I/O操作都由被选中的工作线程来处理。3. 主线程接受连接socket后,向工作线程的任务队列中插入一个任务,并且发送管道消息。工作线程检原创 2022-07-14 17:48:18 · 447 阅读 · 0 评论 -
Linux C/C++定时器实现与原理(一)——链表
一. 定时器简介服务器程序一般需要处理三种时间,分别是:网络I/O事件,信号事件,定时器事件。一个服务器往往需要同时管理多个定时事件,所以需要一个数据结构有效的管理定时事件,以实现对于定时事件的统一管理。二. 定时器通用接口一般来说,定时器都需要以下接口方便对于定时器的管理。同时,定时器节点中的元素至少有超时时间和超时要执行的回调函数。三. 链表定时器的实现...原创 2022-04-29 11:44:25 · 699 阅读 · 0 评论 -
半同步/半反应堆模型以及简单实现(一)
一.半同步/半反应堆模型简介在半同步/半反应堆模型下,主线程为异步线程,主要负责监听所有的事件 。1. 如果事件为连接事件:主线程负责将连接请求接收并且向epoll内核事件表中注册事件。2. 如果事件为非连接事件:主线程负责将连接请求加入请求队列,线程池中的工作线程通过竞争来执行请求队列中的任务。以上模型也存在一定的缺点:1. 首先请求队列是唯一的,那么请求队列在其中便扮演了临界资源的角色。对于临界资源...原创 2022-04-25 18:16:44 · 1078 阅读 · 0 评论 -
单线程Rector实现回声服务器(四)
原创 2022-02-18 17:01:04 · 109 阅读 · 0 评论 -
epoll并发回声服务器实现(三)
服务端:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <sys/socket.h>#include <sys/epoll.h>#include <arpa/inet.h>#define PORT "12345"#define BUFFER_SIZE 1024void error_原创 2022-02-16 17:10:13 · 561 阅读 · 0 评论 -
Select并发回声服务器实现(二)
服务端:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/socket.h>#include <sys/select.h>#include <sys/time.h>#include <unistd.h>#include <arpa/inet.h>#include <math.h>#defi原创 2022-02-16 16:04:14 · 108 阅读 · 0 评论 -
多进程回声服务器实现(一)
服务端:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <sys/socket.h>#include <signal.h>#include <arpa/inet.h>#define PORT "10000"#define BUFFER_SIZE 1024#define TRUE 1原创 2022-02-12 21:47:23 · 830 阅读 · 0 评论 -
Windows+VMWare搭建简单的Linux环境
一. 前言Q: 为什么要安装Linux操作系统?A: 目前大多数的服务器程序都是跑在Linux操作系统上的,并且Linux的系统调用和Windows之间有一定的区别,所以学习在Linux上搭建开发环境并且学习网络编程是有必要的。二. 环境配置1. 安装VMWare链接:http://链接: https://pan.baidu.com/s/1i1WB9qCnI6_lZHOtzqYdPg 提取码: cn0e --来自百度网盘超级会员v4的分享2. 安装Ubuntu...原创 2022-01-25 22:17:54 · 901 阅读 · 0 评论