Linux下的非阻塞IO库epoll

今天看到一篇文章,对于epoll讲解的非常生动清晰,转载收藏一下,原文请点击here。生活中的一个例子假设你在大学中读书,要等待一个朋友来访,而这个朋友只知道你在A号楼,但是不知道你具体住在哪里,于是你们约好了在A号楼门口见面。如果你使用的阻塞IO模型来处理这个问题,那么你就只能一直守候在A号楼门口等待朋友的到来,在这段时间里你不能做别的事情,不难知道,这种方式的效率是低下的。进一步解释selec

- 阅读全文 -

WebSocket协议及Go中的用法

本文主要介绍WebSocket以及Websocket在Golang中的实现和使用。1. WebSocket是什么?这里先列两篇文章:《WebSocket 是什么原理?为什么可以实现持久连接?》,这个是知乎上的一篇文章,对于WebSocket讲的通俗易懂,建议先看一下。The WebSocket Protocol RFC6455,这个是WebSocket的RFC文档,所以内容非常全面(当然只涉及协议

- 阅读全文 -

Go网络编程——Socket

以前主要使用的是Linux C网络编程,现在学习了Golang,就总结一下Go中的socket编程,本文基于Go 1.7.4,和socket相关的代码在go/src/net/net.go文件中。网络协议模型回顾我们先来简单回顾一下网络写协模型。说到网络协议一般就两个模型:概念意义上的OSI(Open Systems Interconnect)的七层协议和实际中使用的TCP/IP四层协议。OSI七层

- 阅读全文 -

select(pselect)函数

select函数允许进程指示内核等待多个事件中的任何一个发生,并仅在一个或多个事件发生或者经历一段指定的事件后唤醒它。而内核是根据描述字的状态来判断事件的发生的,也就是说,我们调用select告知内核对那些描述字(就读、写或异常条件)感兴趣以及等待多长时间。一般select函数多用于网络编程中,但其实我们感兴趣的套接字不局限于套接字描述字;任何描述字都可以使用select来测试。1. 函数介绍se

- 阅读全文 -

关于socket的返回值

我们都知道socket函数执行成功时,返回一个可用的套接字描述符(套接字描述符实质上是一个无符号整数)。但每个进程维护一套套接字描述符还是每个线程维护一套呢?看下面的程序。1. 不同进程同时使用socket下面的代码socket_rst.c循环执行socket函数,申请套接字描述符。#include <stdio.h> #include <stdlib.h> #incl

- 阅读全文 -

微信公众号

公众号文章说明

随机文章

最近回复

  • 马旭鹏: 路过
  • lukez: 比如ignore_older参数比clean_inactive长...
  • QwQ: 按照教程配置IIS8.5主机环境Typecho伪静态问题终于解决...
  • W_Z_C: 果然可以,看了半天文档竟然没有发现这个插件,也是醉了……
  • xiongjunkun: hi, 你好, 能够详细解释一下导致filebeat重传的第二种...
  • Aidan: 博主您的博客写的非常好,相见恨晚 ps: 不好意思,有点激...
  • Aidan: 博客您的博客写的非常好
  • Aidan: 非常好的网站
  • repostone: 非技术的路过。
  • 一方: 但是我的action队列抢占了资源,导致action不能并行,难...

分类

标签

归档