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

php网站源代码修改做网站用最新软件

php网站源代码修改,做网站用最新软件,网站网页设计怎么收费,个网站做淘宝客推广可以吗文章目录 概述摘要正文:介绍ET模式#xff08;边缘触发#xff09;LT模式#xff08;水平触发 默认#xff09; 总结 概述 当谈到Linux网络编程中的ET#xff08;边缘触发#xff09;模式和LT#xff08;水平触发#xff09;模式时#xff0c;我们需要理解它们在事件… 文章目录 概述摘要正文:介绍ET模式边缘触发LT模式水平触发 默认 总结 概述 当谈到Linux网络编程中的ET边缘触发模式和LT水平触发模式时我们需要理解它们在事件驱动编程中的作用和区别。下面是一篇详细解释这两种模式的博文包含代码示例。 摘要 摘要: 在Linux网络编程中ET边缘触发模式和LT水平触发模式是两种常用的事件触发方式。本文将详细介绍这两种模式的原理和使用场景并提供相应的代码示例帮助读者更好地理解和应用。 正文: 介绍 在事件驱动编程中事件触发方式决定了何时和如何通知应用程序发生的事件。ET模式和LT模式是两种常见的事件触发方式主要用于处理非阻塞I/O操作。 EPOLL事件有两种模型 Edge Triggered (ET) 边缘触发只有数据到来才触发不管缓存区中是否还有数据。 Level Triggered (LT) 水平触发只要有数据都会触发。 ET模式边缘触发 ET(edge-triggered)ET是高速工作方式只支持no-block socket。在这种模式下当描述符从未就绪变为就绪时内核通过epoll告诉你。然后它会假设你知道文件描述符已经就绪并且不会再为那个文件描述符发送更多的就绪通知。请注意如果一直不对这个fd作IO操作(从而导致它再次变成未就绪)内核不会发送更多的通知(only once). 下面是一个使用ET模式的示例代码片段该代码使用epoll监听套接字并读取数据 /* server.c */ #include stdio.h #include string.h #include netinet/in.h #include arpa/inet.h #include sys/wait.h #include sys/types.h #include sys/epoll.h #include unistd.h #include fcntl.h#define MAXLINE 10 #define SERV_PORT 8080int main(void) {struct sockaddr_in servaddr, cliaddr;socklen_t cliaddr_len;int listenfd, connfd;char buf[MAXLINE];char str[INET_ADDRSTRLEN];int i, efd, flag;listenfd socket(AF_INET, SOCK_STREAM, 0);bzero(servaddr, sizeof(servaddr));servaddr.sin_family AF_INET;servaddr.sin_addr.s_addr htonl(INADDR_ANY);servaddr.sin_port htons(SERV_PORT);bind(listenfd, (struct sockaddr *)servaddr, sizeof(servaddr));listen(listenfd, 20);struct epoll_event event;struct epoll_event resevent[10];int res, len;efd epoll_create(10);/* event.events EPOLLIN; */event.events EPOLLIN | EPOLLET; /* ET 边沿触发 默认是水平触发 */printf(Accepting connections ...\n);cliaddr_len sizeof(cliaddr);connfd accept(listenfd, (struct sockaddr *)cliaddr, cliaddr_len);printf(received from %s at PORT %d\n,inet_ntop(AF_INET, cliaddr.sin_addr, str, sizeof(str)),ntohs(cliaddr.sin_port));flag fcntl(connfd, F_GETFL);//将其转化为no-blockflag | O_NONBLOCK;fcntl(connfd, F_SETFL, flag);event.data.fd connfd;epoll_ctl(efd, EPOLL_CTL_ADD, connfd, event);while (1) {printf(epoll_wait begin\n);res epoll_wait(efd, resevent, 10, -1);printf(epoll_wait end res %d\n, res);if (resevent[0].data.fd connfd) {while ((len read(connfd, buf, MAXLINE/2)) 0)write(STDOUT_FILENO, buf, len);}}return 0; } LT模式水平触发 默认 LT模式在事件发生时会一直通知直到应用程序将事件处理完毕。它不要求应用程序一直读取或写入数据可以在每个事件通知中只处理一部分数据。LT模式适用于需要按需处理数据的场景如批量数据处理、文件传输等。 下面是一个使用LT模式的示例代码片段该代码使用epoll监听套接字并读取数据 // 创建epoll实例 int epollfd epoll_create1(0);// 添加监听套接字到epoll实例 struct epoll_event ev; ev.events EPOLLIN; // LT模式 ev.data.fd sockfd; epoll_ctl(epollfd, EPOLL_CTL_ADD, sockfd, ev);// 循环监听事件并处理 while (1) {struct epoll_event events[MAX_EVENTS];int ready epoll_wait(epollfd, events, MAX_EVENTS, -1);for (int i 0; i ready; i) {if (events[i].events EPOLLIN) {// 读取数据char buffer[READ_SIZE];int bytesRead read(events[i].data.fd, buffer, READ_SIZE);// 处理数据// ...}} }总结 ET模式和LT模式是Linux网络编程中常用的事件触发方式。ET模式要求应用程序在读取或写入数据时必须一直进行操作适用于需要及时处理全部数据的场景。LT模式允许应用程序按需处理数据适用于需要按需处理数据的场景。理解并正确应用这两种模式对于开发高效、可靠的网络应用程序至关重要。 通过以上详细的解释和代码示例我们希望读者能够更好地理解ET模式和LT模式在Linux网络编程中的作用和区别。这两种模式的选择取决于具体的应用需求开发者可以根据实际情况来决定使用哪种模式。 希望本文对您有所帮助如果还有任何问题请随时提问
http://www.hkea.cn/news/14529127/

相关文章:

  • 公司网站版面怎么设计win7 iis创建网站
  • 无极网站建设谁有人和兽做的网站?
  • 网站集约化建设的好处汕头建设银行电话
  • 网站开发高级工程师网络营销是什么活动
  • 网站建设需要什么证件西京一师一优课建设网站
  • 网站上的格式用html怎么做桂林同城网站
  • 用dz做网站怎么设置数据库.net网站开发全过程
  • vs2013 网站建设怎么用默认程序做网站
  • 威海建设集团网站首页商城网站 不易优化
  • 吉林城市建设学校网站wordpress 繁简
  • 有哪些可以做调查的网站建网站哪便宜
  • 资阳市网站seo设计之家图片
  • 怎么用vs2010做网站济宁网站开发公司
  • 泸溪县建设局网站广水住房和城乡建设部网站
  • 平台推广网站天津网站建设基本流程图
  • 免费h5网站制作平台海外网红营销
  • 网站设计开发中的具体步骤服务区里可以做多少个网站
  • 制作网站公司合同注意事项温州市网站制作多少钱
  • 商业网站服务辽宁建筑网
  • 改进网站建设wordpress用户名备注
  • 网站内容编写方法网站平台运营方案
  • 域名绿标免费申请google搜索优化
  • 国涟建设集团有限公司网站青岛公司注册
  • 海口专业网站制作策划威县做网站哪里便宜
  • 秀山网站建设端午节手抄报获奖用文件传输协议登录网站
  • 网站开发什么课程有自己域名的个人网站
  • 网站程序 seo怎么保证网站安全性
  • 统计后台网站有哪些继续加强网站建设
  • 做微信扫码网站wordpress主题 dux主题5.3
  • 网站建设常用六大布局网站进入之前动态效果