当前位置: 首页 > news >正文

盐城网站建设制作深圳做网站哪家

盐城网站建设制作,深圳做网站哪家,百度贴吧官网网页,广东省自然资源厅吴鋆文章目录 1.poll系统调用的作用2.poll的原型3.poll支持的事件类型4.poll实现TCP服务器(1)服务器端代码:(2)客户端代码:(3)运行结果截图: 1.poll系统调用的作用 poll 系统调用和 select 类似#xff0c;也是在指定时间内轮询一定数量的文件描述符#xff0c;以测试其中是否有… 文章目录 1.poll系统调用的作用2.poll的原型3.poll支持的事件类型4.poll实现TCP服务器(1)服务器端代码:(2)客户端代码:(3)运行结果截图: 1.poll系统调用的作用 poll 系统调用和 select 类似也是在指定时间内轮询一定数量的文件描述符以测试其中是否有就绪者。 2.poll的原型 #include poll.h int poll(struct pollfd *fds, nfds_t nfds, int timeout); poll 系统调用成功返回就绪文件描述符的总数超时返回 0失败返回-1 nfds 参数指定被监听事件集合 fds 的大小。 timeout 参数指定 poll 的超时值单位是毫秒timeout 为-1 时poll 调用将永久阻塞直到某个事件发生timeout 为 0 时poll 调用将立即返回。 fds 参数是一个 struct pollfd 结构类型的数组它指定所有用户感兴趣的文件描述符上发生的可读、可写和异常等事件。pollfd 结构体定义如下 struct pollfd { int fd; // 文件描述符 short events; // 注册的关注事件类型 short revents; // 实际发生的事件类型由内核填充 }; 其中fd 成员指定文件描述符events 成员告诉 poll 监听 fd 上的哪些事件类型。 它是一系列事件的按位或revents 成员则有内核修改通知应用程序 fd 上实际发生了哪些事件。poll 支持的事件类型如下 3.poll支持的事件类型 4.poll实现TCP服务器 (1)服务器端代码: #includestdio.h #includeunistd.h #includestdlib.h #includepthread.h #includestring.h #includearpa/inet.h #includenetinet/in.h #includesys/select.h #includesys/socket.h #includepoll.h#define MAXFD 10 int socket_init(); int accept_client(int sockfd); void fds_init(struct pollfd fds[]); void fds_add(int fd,struct pollfd fds[]); void fds_del(int fd,struct pollfd fds[]); void recv_data(int c,struct pollfd fds[]); int main() {int sockfdsocket_init();if(sockfd-1){exit(0);}struct pollfd fds[MAXFD];fds_init(fds);fds_add(sockfd,fds);//sockfd-fdwhile(1){int npoll(fds,MAXFD,5000);if(n-1){printf(poll error\n);}if(n0){printf(time out\n);}else{for(int i0;iMAXFD;i){if(fds[i].fd-1){continue;}if(fds[i].revents POLLIN){if(fds[i].fd sockfd){int caccept_client(sockfd);if(c!-1){fds_add(c,fds);}}else{recv_data(fds[i].fd,fds);}}}}}}int socket_init() {int sockfdsocket(AF_INET,SOCK_STREAM,0);if(sockfd-1){return -1;}struct sockaddr_in saddr;memset(saddr,0,sizeof(saddr));saddr.sin_familyAF_INET;saddr.sin_porthtons(5678);saddr.sin_addr.s_addrinet_addr(127.0.0.1);int resbind(sockfd,(struct sockaddr*)saddr,sizeof(saddr));if(res-1){printf(bind error\n);return -1;}reslisten(sockfd,5);if(res-1){return -1;}return sockfd; } int accept_client(int sockfd) {struct sockaddr_in caddr;int lensizeof(caddr);int caccept(sockfd,(struct sockaddr*)caddr,len);return c; }void fds_init(struct pollfd fds[]) {for(int i0;iMAXFD;i){fds[i].fd-1;fds[i].events0;fds[i].revents0;} }void fds_add(int fd,struct pollfd fds[]) {for(int i0;iMAXFD;i){if(fds[i].fd-1){fds[i].fdfd;fds[i].eventsPOLLIN;fds[i].revents0;break;}} }void fds_del(int fd,struct pollfd fds[]) {for(int i0;iMAXFD;i){if(fds[i].fdfd){fds[i].fd-1;fds[i].events0;fds[i].revents0;break;}} }void recv_data(int c,struct pollfd fds[]) {char buff[128];int nrecv(c,buff,127,0);if(n0){close(c);fds_del(c,fds);printf(client close\n);return ;}printf(recv:%s\n,buff);send(c,ok,2,0); }(2)客户端代码: #includestdio.h #includeunistd.h #includestdlib.h #includestring.h #includesys/socket.h #includearpa/inet.h #includenetinet/in.hint socket_init();int main() {int sockfdsocket_init();if(sockfd-1){exit(0);}while(1){printf(input:);char buff[128]{0}; fgets(buff,127,stdin);if(strncmp(buff,end,3)0){break;}send(sockfd,buff,strlen(buff)-1,0);memset(buff,0,128);recv(sockfd,buff,127,0);printf(read:%s\n,buff);}close(sockfd);exit(0);}int socket_init() {int sockfdsocket(AF_INET,SOCK_STREAM,0);//tcp流式服务if(sockfd-1){printf(socket errror\n);return -1;}struct sockaddr_in saddr;memset(saddr,0,sizeof(saddr));saddr.sin_familyAF_INET;saddr.sin_porthtons(5678);saddr.sin_addr.s_addrinet_addr(127.0.0.1);int resconnect(sockfd,(struct sockaddr*)saddr,sizeof(saddr));if(res-1){printf(connect error\n);return -1;}return sockfd; }(3)运行结果截图:
http://www.hkea.cn/news/14460404/

相关文章:

  • 电商网站设计特点山东恒正建设有限公司 网站
  • 中国书画画廊网站模板亚马逊中国网站建设目标
  • 如何自己弄一个网站海宁网站怎么做seo
  • 泉州市建设系统培训中心网站洛阳网络建站
  • 庄行网站建设网站做排名有用吗
  • 浙江网站建设服务公司wordpress 字母标签页
  • 鹤岗建设局网站做技术网站赚钱
  • 网站做推广网站建设专题的意义
  • 网站建设合同属于什么税目网站定制开发
  • 网站维护入门教程知果果网站谁做的
  • go 语言 做网站vs2012 网站开发
  • 做网站平方根怎么表示中电云主机怎样登入创建的网站
  • 使用wordpress的用户有哪些小米企业网站的优化建议
  • 去视频网站做编辑php免费源码网站
  • 哪些网站是单页面网站制作公司昆明
  • 中国新闻社官方网站湖南建设资质申请网站
  • 商城网站开发技术企业管理者培训查询
  • 武安专业做网站清远市建设工程造价信息网站
  • 网站登录密码怎么取消保存wordpress淘点金组件
  • 福建富通建设有限公司网站html网页制作代码范例
  • 网站集约化建设意见和建议付费网站建设模板
  • jsp做网站图片怎么存储本地wordpress如何同步
  • html5 珠宝网站嵌入式软件开发工程师做什么
  • 万网如何建设购物网站个人简历模板word可编辑免费
  • 公司网站建设的费用如何入账医疗营销网站建设
  • 网站定位有哪些视频网站建设模版
  • 电商网站开发思路专门做特卖的网站是什么
  • 备案停止网站wordpress 中文版 编码
  • 从用户旅程角度做网站分析简洁的网页
  • 做追星网站效果图河南郑州网站建设