Socket
bryant-xw
Stay hungry, Stay foolish
展开
-
inet_ntop()和inet_pton()函数
头文件#include<arpa/inet.h>1.inet_ntop()const char* inet_ntop(int af,const void* src,char* dst,socklen_t size)功能:32位整数转化为点分十进制的ip地址返回值是char* 字符串参数:af: 协议类型src: 32位整数的地址dst: 存放转换后点分十进制的ip的...原创 2019-04-02 10:54:21 · 433 阅读 · 0 评论 -
linux下的I/O复用模型之epoll详解
epoll函数在这里插入代码片epoll服务器代码测试结果模型评价原创 2019-04-07 17:50:55 · 240 阅读 · 0 评论 -
linux下的I/O复用模型之poll详解
基本原理poll本质上和select没有区别,只是取消了最大监控文件描述符数限制,并没有从根本上解决select存在的问题.它将用户传入的数组拷贝到内核空间,然后查询每个fd对应的设备状态,如果设备就绪则在设备等待队列中加入一项并继续遍历,如果遍历完所有fd后没有发现就绪设备,则挂起当前进程,直到设d备就绪或者主动超时,被唤醒后它又要再次遍历fd。这个过程经历了多次无谓的遍历.它没有最大连...原创 2019-04-06 22:26:39 · 185 阅读 · 0 评论 -
linux / unix下的5种I/O模型
一个输入操作通常包括两个阶段: (1)等待数据准备好 (2)从内核向进程复制数据Key:对于一个套接字上输入操作 第1步:等待数据从网络中到达,当等待分组到达时,会被拷贝到内核中某个缓冲区 第2步:将数据从内核缓冲区中取出拷贝到应用进程的缓冲区5种I/O模型的概览如下图:阻塞I/O(一般默认情况下都是阻塞I/O)应用进程被阻塞,一直等待内核将数据拷贝到应用进程的缓冲...原创 2019-03-28 09:43:41 · 185 阅读 · 0 评论 -
linux下的I/O复用模型之select详解
select函数详解int select(int maxfdp, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);参数:(1)maxfdp: 当前最大描述符数+1(2)readfds: 指向一个套接字集合,用于检测其可读性 (3)writefds: 指向一个套接...原创 2019-04-04 18:52:24 · 1254 阅读 · 0 评论 -
Windows下非阻塞I/O模型的测试
客户端代码:#include<WinSock2.h>#include<WS2tcpip.h>#include<stdlib.h>#include<stdio.h>#include<iostream>using namespace std;#pragma comment(lib,"ws2_32.lib")#define...原创 2019-03-30 19:13:54 · 700 阅读 · 0 评论 -
Windows下阻塞I/O模型的测试
客户端的代码:(这份test_client的代码也会为后续的I/O模型做测试)#include<WinSock2.h>#include<WS2tcpip.h>#include<stdlib.h>#include<stdio.h>#include<iostream>using namespace std;#pragma ...原创 2019-03-30 17:50:20 · 373 阅读 · 0 评论 -
Windows下I/O复用模型(select模型)测试
客户端代码:#include<WinSock2.h>#include<WS2tcpip.h>#include<stdlib.h>#include<stdio.h>#include<iostream>using namespace std;#pragma comment(lib,"ws2_32.lib")#define...原创 2019-04-04 00:23:35 · 521 阅读 · 0 评论 -
Windows下的7种I/O模型总结
I/O模型的用处:为了更加高效的处理网络通信,满足多用户的请求,提高服务器的处理效率。当进行一次数据的接收的时候,主要存在两中等待(和linux下类似):(1)等待数据到达网络,当分组到达时,被复制到套接字口的缓冲区。(2)等待将数据从套接字的接收缓冲区复制到应用程序缓冲区。实际上,第一类等待代表等待网络中I/O条件满足,第二类等待代表具体处理I/O。不同的网络I/O模型主要差别体现在...原创 2019-03-29 15:05:45 · 1110 阅读 · 0 评论 -
linux下的阻塞I/O模型测试
客户端#include<stdio.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<sys/types.h>#include<sys/socket.h>#include<arpa/inet.h>#include&l...原创 2019-04-03 09:31:21 · 174 阅读 · 0 评论