ICode9

精准搜索请尝试: 精确搜索
  • C语言网络编程-tcp服务器实现2021-06-22 16:35:10

    5种io模型 tcp服务器分为了5种io复用模型,分别是: 阻塞io模型     非阻塞io模型 io复用 信号驱动io 异步io 本文会讲前面3种io模型的tcp服务器实现(本文只做tcp服务器实现,客户端逻辑处理,接收数据等缓冲区不做深入说明) 简单实现 首先,我们需要理解下tcp服务器的创建过程: 1:通

  • epoll在网络编程中使用一2021-06-21 10:31:55

    附带部分:              1.tcp粘包处理方式                 (1)引入分割符                  (2)在数据header中,加入数据长度               2.listen函数第二个参数介绍:半连接队列的长度。主要用于保存三次握手完成的队列,可以accept的队列,详细请期

  • epoll学习随笔2021-06-18 15:02:44

    int epoll_create(int size);// 创建epoll 实例 int epoll_ctl(int epfd,int op,int fd,struct epoll_event* event) //  op为枚举类型,可选择的参数有 EPOLL_CTL_ADD // register the target descriptor fd on epoll instance EPOLL_CTL_MOD // change the event associated

  • C++高性能服务器开发 epoll+线程池模型2021-06-16 21:30:00

    文章目录 前言epoll 部分线程池部分整体设计: 前言 最近在总结之前做的恋爱交由平台的项目。在优化服务器时,将一开始使用的同步阻塞+多线程,替换为现在的epoll+线程池模型。提高了并发的能力,可以实现C10k的目标。 因此,特写此文,用来记录epoll+线程池模型。为相同需求的同

  • 不知道怎么入门Selet、Poll、Epoll?看这篇文章就够了!2021-06-16 14:03:34

    前置知识: 用户空间和内核空间进程切换进程的阻塞文件描述符缓存 IO中断 如果对以上概念还有不清楚的地方的话,可以先手动百科下再继续往下看~ I/O多路复用 首先我们来了解一下文件描述符:在Unix哲学中:“Everything is a file."Socket、pipe都可以看做文件,并且有自己独一无二的

  • I/O模型之二:Linux IO模式及 select、poll、epoll详解2021-06-14 17:00:16

    同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的。所以先限定一下本文的上下文。 本文讨论的背景是Linux环境下的network IO。 一、 概念说明 在进行解释之前,首先要说明几个概念: - 用户空间和内核空间- 进程切换- 进程的阻

  • web服务之NginX介绍2021-06-13 22:32:24

    I/O 模型相关概念 同步/异步:关注的是消息通信机制,即调用者在等待一件事情的处理结果时,被调用者是否提供完成状态的通知。 同步:synchronous,被调用者并不提供事件的处理结果相关的通知消息,需要调用者主动询问事 情是否处理完成 异步:asynchronous,被调用者通过状态、通知或回调机制主

  • Netty权威指南:I-O-多路复用技术2021-06-13 19:01:14

    在I/O编程过程中,当需要同时处理多个客户端接入请求时,可以利用多线程或者I/O多路复用技术进行处理。I/O多路复用技术通过把多个I/O的阻塞复用到同一个select的阻塞上,从而使得系统在单线程的情况下可以同时处理多个客户端请求。 与传统的多线程/多进程模型比,I/O多路复用的最大

  • 苦熬一个月,Netty权威指南:I-O-多路复用技术吐血整理2021-06-12 22:04:26

    在I/O编程过程中,当需要同时处理多个客户端接入请求时,可以利用多线程或者I/O多路复用技术进行处理。I/O多路复用技术通过把多个I/O的阻塞复用到同一个select的阻塞上,从而使得系统在单线程的情况下可以同时处理多个客户端请求。 与传统的多线程/多进程模型比,I/O多路复用的最大

  • Unix/Linux编程:epoll2021-06-11 11:31:55

    同IO多路复用和信号驱动IO一样,Linux的epoll(event poll) API可以检查多个文件描述符上的IO就绪状态。epoll API的主要优点如下 当检查大量的文件描述符时,epoll的性能扩展性比select和poll高很多epoll API即支持水平触发也支持边缘触发。与之相反,select()和 poll()只支持水平

  • IO多路转接——epoll进阶2021-06-10 22:01:34

    文章目录 事件模型 ET模式 LT模式 实例一:基于管道epoll ET触发模式 实例二:基于网络C/S模型的epoll ET触发模式 server client 实例三:基于网络C/S非阻塞模型的epoll ET触发模式 server client 事件模型 EPOLL事件有两种模型: Edge Triggered (ET) 边缘触发只有数据到来才触

  • IO多路转接——select,poll,epoll2021-06-10 22:01:25

    文章目录 一、IO操作方式 多路I/O转接服务器 阻塞等待 非阻塞, 忙轮询 解决方案: 第一种: select/poll select函数 poll函数 select服务器代码 poll服务器代码 客户端代码 第二种: epoll epoll函数 epoll服务器代码 二. 什么是I/O多路转接技术: 一、IO操作方式 多路I/O转

  • epoll的基本使用2021-06-09 22:55:48

    1. 网络编程中的四种IO模型 阻塞IO模型,默认socket都是阻塞的,就是IO操作都要等待操作完成以后才能返回; 非阻塞IO模型,就是IO操作时不等待,立即返回,但需要不断的去询问内核,数据是否准备好了,如果准备好了,就主动调用函数去处理数据,使用fcntl设置socket为非阻塞; 多路复用模型,就是事件驱动

  • Android上利用epoll机制实现手机服务器?2021-06-08 15:34:23

    废话不多数。先上代码。server.cpp #include <jni.h> #include <string> #include <cmath> #include <sys/epoll.h> #include <iostream> #include <sys/socket.h> #include <sys/epoll.h> #include <netinet/in.h> #include <arpa/i

  • 就这一次:TCP、IP、操作系统、Netty、算法一次性讲透2021-06-08 11:57:22

    就这一次:大学四年没有学会的TCPIP、操作系统、SocketIO、NIO、Linux内核、Epoll、数据结构与算法,一堂课讲明白——清华大学-马士兵-周志垒   IO篇   1,为什么IO这么重要   2,阻塞和非阻塞的本质区别     3,java代码和内核如何交互   4、NI

  • 「linux」epoll和shutdown使用不当可能导致死循环2021-06-07 21:59:40

    首先来看段代码: #include <arpa/inet.h> #include <assert.h> #include <errno.h> #include <stdio.h> #include <stdlib.h> #include <strings.h> #include <sys/epoll.h> #include <sys/socket.h> #include <sys/types.h>

  • epoll边缘触发下客户端connect问题2021-06-07 21:05:59

    epoll模型 Linux会维护一个建立连接的队列,当服务器第二次收到syn后,会将该连接放在建立连接的队列。 调用一次accpet会从该队列中取出一个连接用fd标识。 边缘触发下,多个连接在epoll_wait之前完成三次握手,边缘触发仅仅产生一次,若调用一次accpet则队列内仍有连接未取出,无法完成

  • Redis 和 I/O 多路复用2021-06-05 22:01:47

    最近在看 UNIX 网络编程并研究了一下 Redis 的实现,感觉 Redis 的源代码十分适合阅读和分析,其中 I/O 多路复用(mutiplexing)部分的实现非常干净和优雅,在这里想对这部分的内容进行简单的整理。几种 I/O 模型为什么 Redis 中要使用 I/O 多路复用这种技术呢?首先,Redis 是跑在单线程中的,所

  • 公开课 redis4 --- 从NIO到BIO 到 多路复用 到epoll的发展历程2021-06-04 14:02:35

    接着昨天的继续学习: 里面会用到昨天学过的东西 博客连接如下: https://www.cnblogs.com/ITPower/articles/12399999.html   今天的目标, 学epoll 为什么学epoll, 用redis举例. epoll是所有模型中, 占用内核空间最小的, 执行速度最快的. redis用了epoll, nginx也是用了epoll  

  • epoll详解2021-05-30 14:01:21

    前言       I/O多路复用有很多种实现。在linux上,2.4内核前主要是select和poll,自Linux 2.6内核正式引入epoll以来,epoll已经成为了目前实现高性能网络服务器的必备技术。尽管他们的使用方法不尽相同,但是本质上却没有什么区别。本文将重点探讨将放在EPOLL的实现与使用详解。 为

  • Linux——IO模式及 select、poll、epoll详解2021-05-30 11:57:55

    一、概念说明 在进行解释之前,首先要说明几个概念: 用户空间和内核空间进程切换进程的阻塞文件描述符缓存 I/O 1.1、用户空间与内核空间 Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递数据,因为Linux使用的虚拟内存机制,用户空间的数据

  • tcp socket通信 Round 22021-05-29 14:01:43

    server端未创建socket;server端创建socket;server创建socket并bind:此时client端尝试connect不会阻塞(未作设置),但errno为111,即 #define ECONNREFUSED 111 /* Connection refused */ server端创建socket,调用bind,listen,未调用accept,此时client尝试connect不会阻塞,errno为0即正常 使用

  • python 35 IO多路复用、select、selectors2021-05-29 14:01:20

    目录 一、事件驱动模型 1、事件驱动模型介绍 二、IO多路复用 1、IO模型前戏准备 用户空间与内核空间 进程切换 进程的阻塞 文件描述符fd 缓存 I/O 2、blocking IO(阻塞IO) 3、non-blocking IO (非阻塞IO) 4、IO multiplexing(IO多路复用) 5、Asynchronous IO(异步IO) 6、select poll

  • 从tcp到netty(一)2021-05-28 23:01:21

      发现自己近一年有些毛病,自己也算是研习了不少的源代码,看了不少的技术书籍,但是自己就是记忆力不行,总是过段时间就会忘记,忘记之后还得从头开始啃源码、啃书籍。而且有些重要技术点也会遗忘,导致再学习的时候发现自己又回到了起点!我总结为,就是自己近一年期间犯懒,没有再写一下博客,

  • IO 多路复用是什么意思?2021-05-28 10:58:24

    作者:罗志宇 链接:https://www.zhihu.com/question/32163005/answer/55772739 来源:知乎 假设你是一个机场的空管, 你需要管理到你机场的所有的航线, 包括进港,出港, 有些航班需要放到停机坪等待,有些航班需要去登机口接乘客。 你会怎么做? 最简单的做法,就是你去招一大批空管员,然后每

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

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

ICode9版权所有