![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
UNIX网络编程
文章平均质量分 81
哞哞哞咩咩咩
记录日常学习
展开
-
Epoll之ET、LT模式
剖析 epoll ET/LT 触发方式的性能差异误解(定性分析) 平时大家使用 epoll 时都知道其事件触发模式有默认的 level-trigger 模式和通过 EPOLLET 启用的 edge-trigger 模式两种。从 epoll 发展历史来看,它刚诞生时只有 edge-trigger 模式,后来因容易产生 race-cond 且不易被开发者理解,又增加了 level-trigger 模式并作为默认处理方式。 二者的差异在于 level-trigger 模式下只要某个 fd 处于 readable/原创 2021-03-05 12:05:12 · 1731 阅读 · 0 评论 -
计算机网络和网络编程知识点博客链接
https://blog.csdn.net/weixin_36750623/article/details/84942341原创 2020-12-28 17:51:08 · 119 阅读 · 0 评论 -
UNIX网络编程三.非阻塞式I/O
1.非阻塞读和写 主要是针对str_cli函数的改写 1.1 阻塞IO代码 #include "unp.h" int main(int argc, char **argv) { int sockfd; struct sockaddr_in servaddr; if (argc != 2) err_quit("usage: tcpcli <IPaddress>"); sockfd = Socket(AF_INET, SOCK_STREAM, 0); bzero(&am原创 2021-02-03 21:10:36 · 150 阅读 · 0 评论 -
UNIX网络编程二. I/O复用:select和poll函数
1. 5种IO模型 五种IO模型详解及优缺点 2.文件描述符就绪状态 书本p130 3. select函数 linux select函数详解详细讲解了select各个参数的意义,以及调用select的流程图 服务端代码: #include "unp.h" int main(int argc, char **argv) { int i, maxi, maxfd, listenfd, connfd, sockfd; int nready, client[FD_SETSIZE];//最大FD原创 2021-02-02 23:01:12 · 147 阅读 · 0 评论 -
UNIX网络编程一.TCP客户/服务器程序
1. 代码 服务端代码 #include "unp.h" int main(int argc, char **argv) { int listenfd, connfd; pid_t childpid; socklen_t clilen; struct sockaddr_in cliaddr, servaddr; listenfd = Socket(AF_INET, SOCK_STREAM, 0); bzero(&servaddr, sizeof(servaddr)原创 2021-02-01 21:55:56 · 133 阅读 · 0 评论