10 2013 档案
摘要:epoll是Linux内核为处理大批量句柄而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著减少程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。一、epoll的优点支持一个进程打开大数目的socket描述符。IO效率不随FD数目增加而线性下降。内核微调。二、epoll的使用epoll有2种工作方式:LT和ET。 LT(leveltriggered,水平触发)是缺省的工作方式,并且同时支持block和no-blocksocket.在这种做法中,内核告诉你一个文件描述符是否就绪了,然后你可以对这个就绪的fd进行IO操作。如果你不作任何操作,.
阅读全文
摘要:功能描述: 获取或者设置与某个套接字关联的选 项。选项可能存在于多层协议中,它们总会出现在最上面的套接字层。当操作套接字选项时,选项位于的层和选项的名称必须给出。为了操作套接字层的选项,应该 将层的值指定为SOL_SOCKET。为了操作其它层的选项,控制选项的合适协议号必须给出。例如,为了表示一个选项由TCP协议解析,层应该设定为协议 号TCP。用法:#include #include intgetsockopt(int sock, int level, int optname, void *optval, socklen_t *optlen);intsetsockopt(int sock,
阅读全文
摘要:/* server.c */#include #include #include #include "error.h"#define MAXLINE 80#define SERV_PORT 8000int main(void){struct sockaddr_in servaddr, cliaddr;socklen_t cliaddr_len;int sockfd;char buf[MAXLINE];char str[INET_ADDRSTRLEN];int i, n;//socket IPv4 SOCK_DGRAMsockfd = Socket(AF_INET, SOCK
阅读全文
摘要:/* client.c */#include #include #include #include #include "error.h"#define MAXLINE 80#define SERV_PORT 8000int main(int argc, char *argv[]){struct sockaddr_in servaddr;int sockfd, n;char buf[MAXLINE];char str[INET_ADDRSTRLEN];socklen_t servaddr_len;//socketsockfd = Socket(AF_INET, SOCK_DG
阅读全文
摘要:1. 点分十进制IP地址与二进制IP地址转换:inet_addr()函数将点分十进制的字符串转换为32位的网络字节顺序的IP信息。inet_network()函数将点分十进制的字符串转换为32位的主机字节顺序的IP信息。inet_ntoa()函数将32位的网络字节顺序的IP信息转换成点分十进制的字符串方式。inet_aton()函数将点分十进制的字符串方式IP信息转换成32位的网络字节顺序。2. 通过IP地址获取网络ID和主机ID:inet_lnaof()函数从某个IP地址中提取标准的主机ID。inet_netof()函数从某个IP地址中提取标准的网络ID。inet_makeaddr()函数将
阅读全文
摘要:#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define MAXBUF 1024#define MAXEPOLLSIZE 10000/*setnonblocking - 设置句柄为非阻塞方式*/int setnonblocking(int sockfd){ if (fcntl(sockfd, F_SETFL, fcntl(sockfd, F_GETFD
阅读全文
摘要:1. Epoll是何方神圣?Epoll可是当前在Linux下开发大规模并发网络程序的热门人选,Epoll在Linux2.6内核中正式引入,和select相似,其实都I/O多路复用技术而已,并没有什么神秘的。其实在Linux下设计并发网络程序,向来不缺少方法,比如典型的Apache模型(Process Per Connection,简称PPC),TPC(Thread PerConnection)模型,以及select模型和poll模型,那为何还要再引入Epoll这个东东呢?那还是有得说说的…2.常用模型的缺点如果不摆出来其他模型的缺点,怎么能对比出Epoll的优点呢。2.1 PPC/TPC模型这
阅读全文