日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

网络编程五种IO模型之poll模型

發布時間:2025/3/21 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 网络编程五种IO模型之poll模型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
// poll_impl.cpp : 定義控制臺應用程序的入口點。 //#include "stdafx.h"#include <unistd.h> #include <sys/types.h> /* basic system data types */ #include <sys/socket.h> /* basic socket definitions */ #include <netinet/in.h> /* sockaddr_in{} and other Internet defns */ #include <arpa/inet.h> /* inet(3) functions */#include <stdlib.h> #include <errno.h> #include <stdio.h> #include <string.h>#include <poll.h> /* poll function */ #include <limits.h>#define MAXLINE 10240#ifndef OPEN_MAX #define OPEN_MAX 40960 #endifvoid handle(struct pollfd* clients, int maxClient, int readyClient);int main(int argc, char **argv) {int servPort = 6888;int listenq = 1024;int listenfd, connfd;struct pollfd clients[OPEN_MAX];int maxi;socklen_t socklen = sizeof(struct sockaddr_in);struct sockaddr_in cliaddr, servaddr;char buf[MAXLINE];int nready;bzero(&servaddr, socklen);servaddr.sin_family = AF_INET;servaddr.sin_addr.s_addr = htonl(INADDR_ANY);servaddr.sin_port = htons(servPort);listenfd = socket(AF_INET, SOCK_STREAM, 0);if (listenfd < 0) {perror("socket error");}int opt = 1;if (setsockopt(listenfd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)) < 0) {perror("setsockopt error");}if(bind(listenfd, (struct sockaddr *) &servaddr, socklen) == -1) {perror("bind error");exit(-1);}if (listen(listenfd, listenq) < 0) {perror("listen error"); }clients[0].fd = listenfd;clients[0].events = POLLIN;int i;for (i = 1; i< OPEN_MAX; i++) clients[i].fd = -1; maxi = listenfd + 1;printf("pollechoserver startup, listen on port:%d\n", servPort);printf("max connection is %d\n", OPEN_MAX);for ( ; ; ) {nready = poll(clients, maxi + 1, -1);//printf("nready is %d\n", nready);if (nready == -1) {perror("poll error");}if (clients[0].revents & POLLIN) {connfd = accept(listenfd, (struct sockaddr *) &cliaddr, &socklen);sprintf(buf, "accept form %s:%d\n", inet_ntoa(cliaddr.sin_addr), cliaddr.sin_port);printf(buf, "");for (i = 0; i < OPEN_MAX; i++) {if (clients[i].fd == -1) {clients[i].fd = connfd;clients[i].events = POLLIN;break;}}if (i == OPEN_MAX) {fprintf(stderr, "too many connection, more than %d\n", OPEN_MAX);close(connfd);continue;}if (i > maxi)maxi = i;--nready;}handle(clients, maxi, nready);} }void handle(struct pollfd* clients, int maxClient, int nready) {int connfd;int i, nread;char buf[MAXLINE];if (nready == 0)return;for (i = 1; i< maxClient; i++) {connfd = clients[i].fd;if (connfd == -1) continue;if (clients[i].revents & (POLLIN | POLLERR)) {nread = read(connfd, buf, MAXLINE);//讀取客戶端socket流if (nread < 0) {perror("read error");close(connfd);clients[i].fd = -1;continue;}if (nread == 0) {printf("client close the connection");close(connfd);clients[i].fd = -1;continue;}write(connfd, buf, nread);//響應客戶端 if (--nready <= 0)//沒有連接需要處理,退出循環break;}} }

總結

以上是生活随笔為你收集整理的网络编程五种IO模型之poll模型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本japanese乳偷乱熟 | 午夜福利电影 | 欧美在线免费看 | 日本少妇xxxx软件 | 成人拍拍| 欧美另类视频在线观看 | 呦呦在线视频 | 亚洲二区在线播放视频 | 天天天综合网 | 日日噜噜噜夜夜爽爽狠狠视频97 | 久久亚洲av无码精品色午夜麻豆 | 天天干夜夜拍 | 在线看片日韩 | 成人深夜福利在线观看 | 中文字幕久久网 | 欧美性tv | 国产极品久久 | 最新国产一区 | 国产精品3p视频 | 亚洲深夜av| 中文在线视频 | 一级黄色美女视频 | www.99re7.com | 麻豆国产91在线播放 | 亚洲区在线播放 | 中文字幕欧美日韩 | 欧美一级免费观看 | 538国产精品一区二区免费视频 | 天堂成人在线 | 国产在线观看网站 | 中字幕视频在线永久在线观看免费 | 免费毛毛片 | 射黄视频 | 蜜臀99久久精品久久久久久软件 | 日韩午夜视频在线观看 | 成人免费影片 | 欧美深性狂猛ⅹxxx深喉 | 色批网站 | 免费的黄色大片 | 综合黄色 | 国产刺激视频 | 亚洲精品97久久中文字幕 | 国产黄色大片 | 九九精品视频免费 | 可以免费看黄的网站 | 国产成人aaaa| 日本一二三不卡 | 亚洲成人精品在线观看 | 四虎成人永久免费视频 | 91亚洲影院 | 国产经典自拍 | 在线观看亚洲精品 | 国产伦一区二区 | 亚洲最大在线观看 | 色一情一伦一子一伦一区 | 午夜影院在线观看18 | 日韩一级片免费看 | 日韩在线视频免费看 | 精品一级少妇久久久久久久 | aaa黄色一级片 | 性欧美videos另类hd | 亚洲不卡一区二区三区 | 久久人人爽 | 嫩草影院一区二区三区 | 亚洲精品毛片av | 福利视频亚洲 | 精品熟妇一区二区三区 | 高级毛片| 国产不卡视频在线播放 | 在线观看网站 | 三级黄色免费 | 国产一区二区免费电影 | 欧美在线一区二区 | 精品一区二区在线播放 | 国产一区二区三区在线视频观看 | 成人极品 | 天天干天天透 | 国产精品 欧美精品 | 日本人妖xxxx | 欧美xxxxxxxxx| 吊侵犯の奶水授乳羞羞漫画 | 五月天激情影院 | 青青草免费在线视频 | 视频一区二区三区四区五区 | 国产特级毛片aaaaaa | 97人妻精品一区二区三区 | 久久精品这里 | 一个人看的www视频在线观看 | 肉大捧一进一出免费视频 | 91精品国产综合久久久久 | www视频在线免费观看 | 免费黄色片视频 | 91蜜桃在线 | 阿拉伯性视频xxxx | 黄色av网站在线 | 欧美 日韩 国产 在线观看 | 婷婷四房播播 | 久久久.com| 欧美丝袜一区二区 |