前面博客<<UNIX环境高级编程--epoll函数使用详解>>有关于epoll函数的讲解. 一.epoll 系列函数简介 #include <sys/epoll.h> int epoll_create(int size); int epoll_create1(int flags); int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event); int epoll_wait(int epfd, st…
一.epoll 系列函数简介 #include <sys/epoll.h> int epoll_create(int size); int epoll_create1(int flags); int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event); int epoll_wait(int epfd, struct epoll_event *events, int maxevents, int timeout); *  …
在一个非阻塞的socket上调用read/write函数,返回EAGAIN或者EWOULDBLOCK(注:EAGAIN就是EWOULDBLOCK). 从字面上看,意思是: EAGAIN: 再试一次 EWOULDBLOCK:如果这是一个阻塞socket, 操作将被block perror输出:Resource temporarily unavailable 总结: 这个错误表示资源暂时不够,可能read时, 读缓冲区没有数据, 或者write时,写缓冲区满了. 遇到这种情况,如果是阻塞socket…
认知套接口编程接口 理解原始套接口(raw socket)的概念   值得注意的是,客户和服务器是典型的用户进程,而TCP和IP协议则通常是系统内核协议栈的一部分. 上图中在TCP和UDP之间留有间隙,用于指出应用程序可以绕过传输层而直接使用IPv4和IPv6,这称为原始套接口(raw socket). UNIX网络编程中所说的套接口编程接口是应用层到传输层的接口.UNIX网络编程的焦点是:如何使用套接口编写使用TCP或UDP的网络应用程序.…
chapter6 6.1 概述 I/O复用典型使用在下列网络应用场合. (1):当客户处理多个描述符时,必须使用IO复用 (2):一个客户同时处理多个套接字是可能的,不过不叫少见. (3):如果一个TCP服务器既要处理监听套接字,又要处理已连接套接字. (4):如果一个服务器既要处理TCP,又要处理UDP (5):如果一个服务器要处理多个服务或多个协议 IO复用并非只限于网络,许多重要的应用程序也需要使用这项技术. 6.2 I/O模型 在Unix下可用的5种I/O模型的基本区别: (1)阻塞式I…
通常说函数返回某个错误值,实际上是函数返回值为-1,而全局变量errno被置为指定的常值(即称函数返回这个错误值). exit终止进程,Unix在一个进程终止时总是关闭该进程所有打开的描述符. TCP三次握手完毕,accept返回,其返回值是一个称为已连接描述符(connected descriptor)的新描述符.调用close关闭与客户的连接. 套接字API. TCP状态转移图,11种状态. MSS,maximum segment size,最大分节大小.通常客户端主动打开时发送SYN的同时…
       epoll模型有两种工作模式,ET和LT两种模式下都有一些细节值得注意,以下是一些思考:   一.ET模式下 Q1:调用accept时,到底TCP完成队列里有多少个已经建立好的连接? 这里又得分情况来说: 没有连接.这种情况发生在TCP连接被客户端夭折,即在服务端调用accept之前客户端给出一个RST.该RST导致刚刚建立好的连接从服务器端的TCP完成队列中被移出.源自berkeley的实现会在内核处理该事件,并不会将该事件通知给服务程序,如果套接口被设置为阻塞模式,就会导致ac…
1: fprintf()#include <stdio.h> int fprintf( FILE *stream, const char *format, ... );fprintf()函数根据指定的format(格式)发送信息(参数)到由stream(流)指定的文件.因此fprintf()可以使得信息输出到指定的文件.比如    char name[20] = "Mary";    FILE *out;    out = fopen( "output.txt&q…
名字和地址转换 系列文章导航:<Unix 网络编程>笔记 域名系统 简介 域名系统主要用于主机名字和 IP 地址之间的映射.主机名可以是: 简单名字,如:centos01 全限定域名(FQDN[1]),如:xxx.com 资源记录 记录 作用 A 指向IPv4 AAAA 指向IPv6 PTR 把IP地址映射为主机名 MX 邮件记录 CNAME 为二级域名指定域名或IP 解析器和名字服务器 DNS DNS替代方法 如果使用 DNS 查找主机名,则使用 /etc/resolv.conf 指定的 D…
高级 I/O 函数 ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ 本文信息 本文信息 防爬虫替换信息 作者网站 LYMTICS https://lymtics.top 作者 LYMTICS(樵仙) https://lymtics.top 联系方式 me@tencent.ml me@tencent.ml 原文标题 <Unix 网络编程>14:高级 I/O 函数 &…