
网络编程
文章平均质量分 84
zhcblog
从事云计算分布式存储相关工作
展开
-
IO复用之epoll_*函数介绍
文章目录epoll函数说明epoll_create函数epoll_ctl函数epoll_wait函数回射服务器程序实例 epoll函数说明 epoll是Unix下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率,因为它会复用文件描述符集合来传递结果而不用迫使开发者每次等待事件之前都必须重新准备要被侦听的文件描述符集合,另一点原因就是获取事件的时候,它无须遍历整个被侦听的描述符集,只要遍历那些被内核IO事件异步唤醒而加入Ready队列的描原创 2020-07-17 15:43:31 · 251 阅读 · 0 评论 -
IO复用之poll函数介绍
文章目录函数说明编程实现serverclient 函数说明 函数原型 #include <poll.h> int poll(struct pollfd *fds, nfds_t nfds, int timeout); 函数功能: 等待一个文件描述符转变为就绪状态 参数1: 第一个参数是一个结构体类型的数组的首地址 struct pollfd { int fd; /* 文件描述符 */ short events; /* 监控的事件 */ short revents; /* 监控事件中满足原创 2020-07-17 14:39:13 · 722 阅读 · 0 评论 -
IO复用之select函数介绍
文章目录函数说明函数原型:函数功能:参数说明:函数原理编程实现总结描述符就绪条件(拓展) 函数说明 函数原型: /* According to POSIX.1-2001, POSIX.1-2008 */ #include <sys/select.h> /* According to earlier standards */ #include <sys/time.h> #include <sys/types.h> #include <unistd.h> in原创 2020-07-17 13:49:42 · 591 阅读 · 0 评论 -
Unix下可用的5种I/O模型总结
1. 阻塞式I/O模型 最流行的I/O模型是阻塞式IO (blocking I/O)模型,默认情形下,所有套接字都是阻塞的。以数据报套接字作为例子,有下图6-1所示的情形。 这里使用UDP而不是TCP作为例子的原因在于就UDP而言,数据准备好读取的概念比较简单:要么整个数据报已经收到,要么还没有。然而对于TCP来说,会导致这个概念变得复杂。在本节的例子中,我们把recvfrom函数视为系统调用,因为我们正在区分应用进程和内核。不论它如何实现,一般都会从在应用进程空间中运行切换到在内核空间中运行,一段时间之原创 2020-07-17 10:16:05 · 318 阅读 · 0 评论 -
C/S通信过程和基本socket函数
服务器调用socket()、bind()、listen()完成初始化后,调用accept()阻塞等待,处于监听端口的状态,客户端调用socket()初始化后,调用connect()发出SYN段并阻塞等待服务器应答,服务器应答一个SYN-ACK段,客户端收到后从connect()返回,同时应答一个ACK段,服务器收到后从accept()返回。 数据传输的过程: 建立连接后,TCP协议提供全双工的通信服务,但是一般的客户端/服务器程序的流程是由客户端主动发起请求,服务器被动处理请求,一问一答的方式。因此,服务器原创 2020-07-02 19:38:08 · 1626 阅读 · 0 评论