ICode9

精准搜索请尝试: 精确搜索
  • 谈谈Linux网络编程2021-05-27 21:57:33

    标准I/O 常见标准I/O函数 常用标准I/O库函数总结 fopen fopen()函数主要用于对文件和终端的输入输出。 #include <stdio.h> FILE *fopen(const char *filename, const char *mode); filaname:指定的文件名,fopen会把它与一个文件流关联起来。 mode:指定文件的打开方式: “r

  • Apache和Nginx的区别2021-05-26 11:51:57

    Nginx轻量级,采用 C 进行编写,同样的 web 服务,会占用更少的内存及资源抗并发,nginx 以 epoll and kqueue 作为开发模型,处理请求是异步非阻塞的,负载能力比 apache 高很多,而 apache 则是阻塞型的。在高并发下 nginx 能保持低资源低消耗高性能 ,而 apache 在 PHP 处理慢或者前端压力很大的

  • 连接池 和 监听队列2021-05-24 14:34:03

    采用Nginx的源码思想来写 监听套接字队列 监听端口数有多少个,那么监听队列就多长 结构体ngx_listening_s 每一个都包含 端口号 sockfd 指向连接对象的指针 vector<ngx_listening_s> 对象数组,刚开始在运行前就被初始化,配置好 连接池 可以看成 对象数组 每一个对象是一个结构体,包

  • 从零开始实现TinyWebServer2021-05-17 15:33:56

    原作者:https://zhuanlan.zhihu.com/p/364044293   从0到服务器开发——TinyWebServer 前言: 修改、完整注释、添加功能的项目代码: https://github.com/white0dew/WebServer 它是个什么项目?——Linux下C++轻量级Web服务器,助力初学者快速实践网络编程,搭建属于自己的服务器。 使用

  • 阿里大牛带你快速搞懂netty,面试大厂再也不怕被问netty了2021-05-15 16:52:52

    前言:花了三天时间总算把netty的知识点总结出来了,现在分享给你们,面试大厂在也不要怕了,直接吊打面试官。如果你们觉得我总结的不错的话,给我一个小心心鼓励一下吧,话不多说,我们开始正题。IO模型IO模型就是说用什么样的通道进行数据的发送和接收,Java共支持3种网络编程IO模式:BIO,NIO,AIOBIO

  • 从epoll到HTTP到Web框架,手写一个Web项目2021-05-14 14:05:42

    项目地址 1. 项目介绍 本项目C++为初学者的学习项目,从epoll到HTTP服务器到Web项目,除了用了boost的字符串处理,全部手撸,没有任何其他依赖。 实现了用户的注册、登录、充值、交易(转账)功能。 epoll服务器部分参考《Linux系统编程》以及boost的axio的example(尤其是HTTP协议解析部

  • epoll,求知者离我近点2021-05-12 22:53:25

    文章目录 什么是epoll?或者说,它和select有什么判别? 什么是select 什么是epoll epoll设计思路简介 边缘触发与水平触发,阻塞I/O与非阻塞I/O 阻塞I/O与非阻塞I/O 阻塞式文件I/O 非阻塞式文件I/O 多路复用I/O ET V/S LT epoll API 头文件 创建句柄 epoll控制函数 epoll消息读取

  • Asop 之 消息处理机制2021-05-12 09:54:39

    Android 应用程序是通过消息来驱动的,系统为每一个应用程序维护一个消息队例,应用程序的主线程不断地从这个消息队例中获取消息(Looper),然后对这些消息进行处理(Handler),这样就实现了通过消息来驱动应用程序的执行。先了解一下涉及到的几个概念:Message消息(Message)代表一个行为(what)或者一

  • 关于epoll_create的size,以及创建出的句柄eploofd是否需要close探讨2021-05-11 22:34:03

    size epoll_creat的函数圆形如下: int epoll_create(int size); 其中,size的含义值得琢磨。首先参考官方给出的资料: gun库里的注释 /* Creates an epoll instance. Returns an fd for the new instance. The "size" parameter is a hint specifying the number of file

  • 网桥+tap+epoll实现交换机2021-05-11 21:01:16

    网桥+tap+epoll实现交换机 本方案需要两个物理网卡,且每个网卡都需要网桥连接到Tap虚拟网卡,此时可以通过向Tap虚拟网卡进行读写操作达到对物理网卡进行读写操作。 网络拓扑实现过程 网络拓扑实现过程如下: 使用tunctl命令创建2个Tap虚拟网卡使用brctl addbr命令创建2个网桥使

  • Linux c++(socket网络通信 & epoll的三种模式)2021-05-10 12:05:27

    默认:水平触发模式 - 根据读来解释 只要fd对应的缓冲区有数据 epoll_wait返回 返回的次数与发送数据的次数没有关系 epoll默认的工作模式 ET: 边沿触发模式 客户端给server发数据 发一次数据server的epoll——wait返回一次 不在乎诗句是否读完 // 将

  • Linux c++(socket网络通信 & epoll)2021-05-10 10:05:54

    epoll 三个函数: 该函数生成一个epoll专门的文件描述符 int epoll_creae(int size); size: epoll上能关注的最大描述符数 用于控制某个epoll文件描述符事件,可以注册,修改,删除 int epoll_ctl(int epfd,int op,int fd,struct epoll_event* event); epfd: epoll_create生

  • Redis事件2021-05-09 11:34:45

    前言 Redis 是一个事件驱动的内存数据库,服务器需要处理两种类型的事件。  文件事件  时间事件 下面就会介绍这两种事件的实现原理。 文件事件 Redis 服务器通过 socket 实现与客户端(或其他redis服务器)的交互,文件事件就是服务器对 socket 操作的抽象。 Redis 服务器,通过监听

  • 【Linux网络编程】Nginx -- 事件模块(三)2021-05-05 20:59:20

    【Linux网络编程】Nginx -- 事件模块(三) 【1】epoll 的原理简介 详见 【Linux网络编程】Epoll 的实现原理分析 【2】ngx_epoll_module epoll 驱动模块 【2.1】ngx_epoll_module epoll 驱动模块 -- 相关接口定义 ngx_epoll_conf_t 结构体 // epoll 模块的配置结构体 typedef s

  • IO学习笔记(bio,nio,aio的区别 select,poll,epoll的区别)【三】2021-04-29 13:33:21

    原文 https://www.cnblogs.com/eryun/p/12040508.html 先了解一些基本概念,什么是socket?什么是I/O操作 unix(like)世界里,一切皆文件,而文件是什么呢?文件就是一串二进制流而已,不管socket,还是FIFO、管道、终端,对我们来说,一切都是文件,一切都是流 在信息交换的过程中,我们都是对这

  • Redis为什么是单线程还支持高并发2021-04-28 17:52:00

    Redis为什么设计成单线程模式因为redis是基于内存的读写操作,所以CPU不是性能瓶颈,而单线程更好实现,所以就设计成单线程模式 单线程模式省却了CPU上下文切换带来的开销问题,也不用去考虑各种锁的问题,不存在加锁释放锁操作,没有因为可能出现死锁而导致的性能消耗。 单线程为什么快完全

  • select、poll、epoll之间的区别总结[整理] + 知乎大神解答2021-04-28 14:59:02

    http://www.cnblogs.com/Anker/p/3265058.html  select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件

  • I/O模型和Java NIO源码分析2021-04-19 23:53:14

      最近在学习Java网络编程和Netty相关的知识,了解到Netty是NIO模式的网络框架,但是提供了不同的Channel来支持不同模式的网络通信处理,包括同步、异步、阻塞和非阻塞。学习要从基础开始,所以我们就要先了解一下相关的基础概念和Java原生的NIO。这里,就将最近我学习的知识总结一下,以供

  • epoll的底层原理2021-04-18 12:58:20

    又是一篇特别好的文章,转自:https://www.toutiao.com/i6683264188661367309/?wid=1618717723050 epoll的底层原理 一、从网卡接收数据说起二、如何知道接收了数据?三、进程阻塞为什么不占用cpu资源?四、内核接收网络数据全过程五、同时监视多个socket的简单方法六、epoll的设计

  • 03Linux网络编程基础 ---- IO复用2021-04-17 21:04:05

    select系统调用 #include <sys/select.h> int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout); nfds:是指集合中所有文件描述符的范围,即所有文件描述符的最大值加1 readfds:对应可读的文件符集合,是我们

  • 彻底搞懂epoll高效运行的原理2021-04-16 13:05:03

    前言这篇文章读不懂的没关系,可以先收藏一下。笔者准备介绍完epoll和NIO等知识点,然后写一篇Java网络IO模型的介绍,这样可以使Java网络IO的知识体系更加地完整和严谨。初学者也可以等看完IO模型介绍的博客之后,再回头看这些博客,会更加有收获。如果你顺利啃下这篇博客,恭喜你,nginx、redis

  • linux网络编程一:epoll2021-04-16 09:51:36

    简介一提到linux高性能服务器编程,epoll就是绕不开的话题,当前网络库在linux上实现也主要是以epoll为主。epoll的主要优点有:当检查大量的文件描述符时,epoll的性能比select和poll要高很多。epoll 既支持水平触发也支持边沿触发。select 和 poll只支持水平触发,而信号驱动I/O只支持边缘

  • Linux的epoll使用LT+非阻塞IO和ET+非阻塞IO有效率上的区别吗?2021-04-12 15:57:48

    linux服务器开发相关视频解析: linux下的epoll实战揭秘——支撑亿级IO的底层基石 epoll的网络模型,从redis,memcached到nginx,一起搞定 c/c++ linux服务器开发免费学习地址:c/c++ linux后台服务器高级架构师 问题: Linux 的 epoll 使用 LT + 非阻塞 IO 和 ET + 非阻塞 IO 有效率上

  • Python并发编程—IO模型2021-04-11 19:58:47

    文章目录 一、IO模型介绍二、阻塞IO(blocking IO)三、非阻塞IO(non-blocking IO)四、多路复用IO(IO multiplexing)五、异步IO(Asynchronous I/O)六、IO模型比较分析七、selectors模块实现IO复用中的三个API(select、poll和epoll)的区别和联系:1 select2 poll3 epoll总结实例

  • 网络编程022021-04-11 04:32:24

    TIME_WAIT TCP 四次挥手,在四次挥手的过程中,发起连接断开的一方会有一段时间处于 TIME_WAIT 的状态 TIME_WAIT 发生的场景 只有发起连接终止的一方会进入 TIME_WAIT 状态     TIME_WAIT 的作用 TIME_WAIT 的引入是为了让 TCP 报文得以自然消失,同时为了让被动关闭方能够正常关闭; T

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有