
网络编程
油油灰
这个作者很懒,什么都没留下…
展开
-
IO复用---select()函数
参数1:要监听的描述符的个数,一般取需要监听的描述符中最大值加1;参数2~4:三个数组,分别表示可读,可写,和异常事件对应的描述符集合,数组大小也限制了所能监听的最大描述符个数,一般为1024个;以下四个函数用来操作这三个数组;参数5:超时时间,不需要可以设置为NULL,表示如果没有活动的事件产生,将一直阻塞(不考虑信号);服务端利用select()监听客户端套接字上可读事件:#include <sys/types.h>#include <sys/socket.h>.原创 2020-07-11 16:28:27 · 143 阅读 · 0 评论 -
writev 函数使用
其中fd为一个文件描述符,vector为一个数组,数组中每个元素都包含了一个地址和一个偏移量,count表示数组的个数;以下代码:服务端利用writev()从一个stadus_line数组和另外一个本地文件读取文件,并发送到客户端;#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <assert.h>#include <stdio.h&.原创 2020-07-10 15:43:51 · 1853 阅读 · 0 评论 -
dup函数
1.服务端,关闭标准输出(文件描述符为1),执行dup(confd),其中confd为客户端套接字;这样服务器端输出到标准输出的内容就会发送到客户端;#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <assert.h>#include <stdio.h>#include <unistd.h>#include <原创 2020-07-09 21:47:50 · 407 阅读 · 0 评论