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

石碣企业网站建设公司江苏建设人才网官方网站

石碣企业网站建设公司,江苏建设人才网官方网站,设置网站默认首页,wordpress 扫码付费一.I/O复用 #xff08;一#xff09;基于I/O复用的服务器端 1.多进程服务器 每次服务都需要创建一个进程#xff0c;需要大量的运算和内存空间 2.复用 只需创建一个进程。 3.复用技术在服务器端的应用 #xff08;二#xff09;select函数实现服务器端 #xff08;…一.I/O复用 一基于I/O复用的服务器端 1.多进程服务器 每次服务都需要创建一个进程需要大量的运算和内存空间 2.复用 只需创建一个进程。 3.复用技术在服务器端的应用 二select函数实现服务器端 Linux和Windows平台下均有select函数所以具有良好移植性 1.select函数调用过程 2.select函数示例5秒内控制才没有输入就输出 Timeout 否则打印输入。 #includeiostream #includeunistd.h #includesys/time.h #includesys/select.h using namespace std; #define BUF_SIZE 30int main(int argc,char *argv[]){fd_set reads,temps;int result,str_len;//fd_set类型是一个文件描述符集合char buf[BUF_SIZE];//在这里声明了reads和temps两个集合用于I/O复用。struct timeval timeout;FD_ZERO(reads);//用于清空文件描述符集合。FD_SET(0,reads);//将标准输入文件描述符添加到集合中while(1){tempsreads;//在每次循环开始时将temps设置为上一次存有文件描述符的集合reads的副本。timeout.tv_sec5;//设置超时时间为5秒timeout.tv_usec0;resultselect(1,temps,0,0,timeout);调用select函数来等待可读事件就绪或超时发生。if(result-1){//第一个参数表示要监视的最大文件描述符值加1coutselect() errorendl;//第二个参数是指向待检查的文件描述符集合的指针break; //后面的三个参数是输出参数。}else if(result0)coutTime outendl;else{if(FD_ISSET(0,temps))//检查输入文件描述符是否就绪{str_lenread(0,buf,BUF_SIZE);buf[str_len]0;coutmessage from console: bufendl;}}//如果select函数返回-1表示出现了错误输出错误信息并跳出循环。//如果select函数返回0表示超时输出Time out。//如果select函数返回大于0的值表示文件描述符就绪。//这里通过FD_ISSET宏检查标准输入文件描述符是否在集合中就绪。//如果标准输入文件描述符就绪调用read函数读取输入内容并输出到控制台。}return 0; }3.实现I/O复用服务器端 #includeiostream #includestdlib.h #includestring.h #includeunistd.h #includearpa/inet.h #includesys/socket.h #includesys/time.h #includesys/select.h using namespace std;#define BUF_SIZE 100//宏定义了一个缓冲区大小为100的常量。 void error_handling(const char *buf);int main(int argc,char *argv[]){int serv_sock,clnt_sock;struct sockaddr_in serv_adr,clnt_adr;struct timeval timeout;fd_set reads,cpy_reads;socklen_t adr_sz;int fd_max,str_len,fd_num,i;char buf[BUF_SIZE];if(argc!2){coutUsageargv[0]endl;exit(1);}serv_socksocket(PF_INET,SOCK_STREAM,0);//创建套接字memset(serv_adr,0,sizeof(serv_adr));//将结构体清零serv_adr.sin_familyAF_INET;serv_adr.sin_addr.s_addrhtonl(INADDR_ANY);//设置服务器地址信息、IP地址和端口号serv_adr.sin_porthtons(atoi(argv[1]));if(bind(serv_sock,(struct sockaddr*)serv_adr,sizeof(serv_adr))-1)error_handling(bind() error); //将套接字和指定地址绑定if(listen(serv_sock,5)-1)//开始监听连接请求error_handling(listen() error);FD_ZERO(reads);//清空文件描述符集合FD_SET(serv_sock,reads);//将服务器套接字添加到reads集合中fd_maxserv_sock;//fd_max初始化为服务器套接字的值while(1){//进入主循环cpy_readsreads;//将reads集合复制过来timeout.tv_sec5;//超时时间timeout.tv_usec5000;if((fd_numselect(fd_max1,cpy_reads,0,0,timeout))-1)break; //监控文件描述符的状态变化if(fd_num0)continue;for(i0;ifd_max1;i){if(FD_ISSET(i,cpy_reads)){//检查文件描述符是否就绪if(iserv_sock){//如果是服务器套接字表示有新的客户端连接请求adr_szsizeof(clnt_adr);clnt_sockaccept(serv_sock,(struct sockaddr*)clnt_adr,adr_sz);FD_SET(clnt_sock,reads);if(fd_maxclnt_sock)fd_maxclnt_sock;coutconnect client: clnt_sockendl;}else{//如果不是服务器套接字表示已连接的客户端有数据发送过来str_lenread(i,buf,BUF_SIZE);if(str_len0){FD_CLR(i,reads);close(i);coutclosed clientiendl;}elsewrite(i,buf,str_len);}}}}close(serv_sock);return 0; }void error_handling(const char *buf){coutbufendl;exit(1); }三总结  1.请解释复用技术的通用含义并说明何为I/O复用。 复用技术指为了提高物理设备的效率用最少的物理要素传递最多数据时使用的技术。同样I/O复用是指将需要I/O的套接字捆绑在一起利用最少限度的资源来收发数据的技术。 2.多进程并发服务器的缺点有哪些如何在I/O复用服务器端中弥补 多进程并发服务器的服务方式是每当客户端提出连接要求时就会追加生成进程。但构建进程是一项非常有负担的工作因此向众多客户端提供服务存在一定的局限性。而复用服务器则是将套接字的文件描述符捆绑在一起管理的方式因此可以一个进程管理所有的I/O操作。 3.select函数的观察对象中应包含服务器端套接字监听套接字那么应将其包含到哪一类监听对象集合请说明原因 服务器套接字的作用是监听有无连接请求即判断接收的连接请求是否存在应该将其包含到“读”类监听对象的集合中。 4.select函数使用的fd_set结构体在Windows和Linux中具有不同的声明。请说明却别同时解释存在区别的必然性 Linux的文件描述符从0开始递增因此可以找出当前文件描述符数量和最后生成的文件描述符之间的关系。但Windows的套接字句柄并非从0开始并且句柄的整数值之间并无规律可循因此需要直接保存句柄的数组和记录句柄数的变量。
http://www.zqtcl.cn/news/524966/

相关文章:

  • 可拖拽 网站建设如何做自媒体和网站签约赚点击
  • 做网站选哪个语言怎么登录百度app
  • 国发网站建设网站优化主要优化哪些地方
  • 快速微信网站开发定制网站建设费用预算
  • 网站制作叫什么知名网站建设制作
  • 网络营销网站建设公司h5应用
  • 网站开发合同要上印花税吗南江红鱼洞水库建设管理局网站
  • 疏通下水道网站怎么做wordpress 恢复初始化
  • 电脑商业网站怎的做软文推广渠道
  • 自己做网站需要买什么如何做微信商城网站
  • 有了网站开发app是不是更容易自建网站管理
  • 网站将要准备建设的内容有哪些做外贸有效的网站
  • 网站设计博客网站内容添加
  • 网站建站行业新闻微盟开店怎么收费
  • 网站的建设参考文献郑州网站建设中国建设建设银行
  • 重庆那些公司的网站是网易做的电信100m光纤做网站
  • 网站怎么设计产品营销策略包括哪些内容
  • 天元建设集团有限公司破产重组河源seo排名
  • 网站权重什么意思seo的搜索排名影响因素有
  • 建设报名系统是正规网站吗计算机培训班出来好找工作吗
  • 网站上的文章用秀米可以做吗宁波外客网络科技有限公司
  • 网站底部导航代码成品视频直播软件推荐哪个好一点ios
  • 上海电商网站开发公司垫江网站建设价格
  • 门户网站建设存在问题与不足商城网站开发项目文档
  • wordpress建站方便吗wordpress加入海报功能
  • 网站名称注册保护2018wordpress主题
  • 类似享设计的网站企业信息系统公示
  • 如何学习网站开发酒店网站源码
  • 怎么用nas做网站服务器WordPress云虚拟空间
  • 网站设计 ipad企业品牌推广宣传方案