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

建设主题网站一般要经历的顺序综合型电子商务平台有哪些

建设主题网站一般要经历的顺序,综合型电子商务平台有哪些,wordpress 评论插件,杭州做网站工作室IO多路复用是一种高效的I/O处理方式#xff0c;它允许单个进程能够同时监视多个文件描述符#xff08;sockets、文件等#xff09;#xff0c;并在其中任何一个文件描述符准备好进行I/O操作时进行处理。它的核心在于使用少量的线程或进程来管理多个I/O操作#xff0c;以提… IO多路复用是一种高效的I/O处理方式它允许单个进程能够同时监视多个文件描述符sockets、文件等并在其中任何一个文件描述符准备好进行I/O操作时进行处理。它的核心在于使用少量的线程或进程来管理多个I/O操作以提高系统的性能和响应速度。 一、概念 1. IO多路复用的核心 文件描述符集合使用一个数据结构如数组或位图来管理多个文件描述符通常使用select、poll或epoll等系统调用来监视这些文件描述符。 阻塞与非阻塞IO多路复用可以与阻塞和非阻塞I/O一起使用。非阻塞I/O允许程序立即返回而不必等待数据准备好。 事件驱动当一个或多个文件描述符准备好进行读取或写入操作时IO多路复用会触发相应的事件从而通知应用程序执行相应的操作。 单线程/多线程IO多路复用可以由单个线程或多个线程来处理取决于应用程序的需求。通常单个线程可以管理多个文件描述符。 2. 四种IO模型 阻塞IO模型Blocking IO ① 阻塞IO模型是最简单的IO模型之一         ② 当程序执行IO操作时它会被阻塞直到IO操作完成为止         ③ 这种模型的效率较低因为程序在等待IO完成期间无法执行其他任务。 ​ 非阻塞IO模型Non-blocking IO ① 非阻塞IO模型允许程序在等待IO完成时继续执行其他任务         ② 当程序请求IO操作时它会立即返回不会被阻塞         ③ 程序需要不断轮询以检查IO操作是否完成这可能会导致CPU资源浪费。 ​ 多路复用IO模型IO Multiplexing ① 多路复用IO模型使用了一种机制允许程序同时等待多个IO操作的完成         ② 通常使用select、poll或epoll等系统调用来实现         ③ 程序可以同时监视多个文件描述符只有当其中某个文件描述符有IO事件发生时程序才会被唤醒处理该事件。 异步IO模型Asynchronous IO ① 异步IO模型中程序发起IO操作后立即返回不会阻塞         ② 当IO操作完成时系统会通知程序然后程序处理完成的数据         ③ 这种模型的效率很高因为程序不需要轮询但实现复杂度较高。 因此IO复用的核心基本思想为先构造一张有关描述符的表然后调用一个函数。当这些文件描述符中的一个或多个已准备好进行I/O时函数才返回。函数返回时告诉进程哪些描述符已就绪可以进行I/O操作。 3. IO复用的优点 高效利用CPU相较于传统的多线程/多进程模型IO多路复用可以减少线程/进程的创建和切换开销提高CPU的利用率。 减少资源占用减少了每个连接的资源消耗因为不再需要为每个连接创建一个线程或进程。 简化程序逻辑IO多路复用可以简化程序的逻辑使得代码更易于维护和理解。 二、代码实现TCP服务器端为例 1. 创建监听套接字socket // 创建套接字socketint ser_socket socket(AF_INET, SOCK_STREAM, 0);if (ser_socket -1){perror(socket);return -1;}int reuse 1;//设置套接字属性 SO_REUSEADDR 允许端口重用 if(setsockopt(ser_socket, SOL_SOCKET, SO_REUSEADDR, (void *)reuse, sizeof(reuse))0){perror(setsockopt error);return -1;} 2. 初始化套接字和服务器自己的IP地址结构体包括端口号 // 初始化地址结构体 // IP地址PORT端口号struct sockaddr_in addr;addr.sin_family AF_INET; //地址簇addr.sin_port atoi(argv[1]); //端口一般以传参的传进来// addr.sin_addr.s_addr inet_addr(192.168.1.25); //IP地址addr.sin_addr.s_addr htonl(INADDR_ANY); //用特殊的0.0.0.0这个IP来绑定本机IP地址 3. 绑定bind // 绑定地址结构体bindint b bind(ser_socket, (struct sockaddr *)addr, sizeof(struct sockaddr_in));if(b -1){perror(bind);return -1;}printf(绑定成功\n); 4. 开启监听listen int l listen(ser_socket, 3);if (l -1){perror(listen);return -1;}printf(监听成功\n);//ser_socket由 待链接套接字 变成 监听套接字 5. 创建文件描述符集合并初始化 这里呢设置了套接字超时就是在规定的时间内如果没有客户端连接则退出服务器。 //设置套接字接收超时struct timeval tv;tv.tv_sec 5; //超时秒数tv.tv_usec 0;setsockopt(ser_socket, SOL_SOCKET, SO_RCVTIMEO, tv, sizeof(tv)); // 等待连接acceptstruct sockaddr_in c_addr; //用来存放客户端链接成功之后的IP加端口int addrlen sizeof(c_addr);int new_socekt accept(ser_socket, (struct sockaddr *)c_addr, addrlen);if (new_socekt -1){printf(延时时间到了服务器退出了\n);perror(accept);return -1;}// new_socekt 链接成功之后用来通信的套接字printf(客户端【%s】【%u】连接成功\n, inet_ntoa(c_addr.sin_addr), c_addr.sin_port);//客户端的IP跟端口IP是你客户端本身自带的但是端口是系统随机分配的啊// 接收消息read/recvchar buf[1024];while(1){bzero(buf, sizeof(buf));read(new_socekt, buf, sizeof(buf));// recv(new_socekt, buf, sizeof(buf), 0);printf( client %s\n, buf);} 6. 资源释放关闭套接字 close(new_socekt);// shutdown(new_socekt, SHUT_RDWR); 三、使用场景 1. 网络服务器 IO复用常用于网络服务器特别是需要同时处理大量客户端连接的情况例如Web服务器、聊天服务器和在线游戏服务器。 2. 网络代理 代理服务器需要同时监听多个客户端和服务器连接以便在它们之间传递数据这是IO复用的典型应用场景。 3. 聊天应用 实时聊天应用通常需要处理多个客户端的消息IO复用可以用于同时监视多个客户端连接以便实时传递消息。 4. 文件传输应用 文件传输服务器需要同时处理多个文件上传或下载请求使用IO复用可以有效管理这些请求。 更多C/C语言、Linux系统、数据结构和ARM板实战相关文章关注专栏 手撕C语言 玩转linux 脚踢数据结构 系统、网络编程 探索C 6818ARM开发板实战 写在最后 今天的分享就到这啦~觉得博主写的还不错的烦劳 一键三连喔~感谢关注
http://www.hkea.cn/news/14511110/

相关文章:

  • 网站建设策划书的基本格式佛山做网站3lue
  • 有哪些做的好的营销型网站亚马逊备案网站建设
  • 做网站后台主要负责什么著名网站织梦
  • 深深圳市建设局网站北京专业建设网站价格
  • 织梦图片自适应网站源码用什么可以做网站
  • 在工商局网站如果做注销公告友情链接也称为
  • 浙江网站推广网站空间费用一年多少
  • 室内设计与装修杂志厦门seo排名优化公司
  • 漂亮的html单页购物网站怎么做优化
  • 北京 网站 公司哪种语言做网站好
  • 大连微信网站p2p网站建设公司
  • 叠石桥网站建设重庆网上房地产信息网官网
  • 做信息分类网站难吗seo研究中心教程
  • 如何创建网站步骤网站设计和制作费用
  • 沈阳网站公司哪个好订阅号怎么做免费的视频网站吗
  • 深圳住房和建设局网站预约英国做网站的人
  • 网站备案图片东阳市建设局网站
  • 关键词免费网站扁平化企业网站
  • 免费网站是如何盈利的清洁公司网站建设
  • 纹身网站设计苏州网站建设哪家技术好
  • 专门做旅行用品的网站新的网站设计制作
  • 网站备案号含义xiu主题 wordpress
  • 泊美网站建设总目的网页传奇游戏大全
  • 最好用的网站建设软件建立网站的价格
  • 网站数据查询网站推广排名哪家公司好
  • 苏州网站提升排名网络编程
  • 东莞网站建设及外包qq推广链接
  • 泰州专一做淘宝网站无锡模板网站
  • 网站建设seo视频教程网站关键词百度首页消失
  • 爱站网seo工具大岭山镇网站建设