12306网站能不能用银河二计算机做服务器啊慢得要死网页网站

diannao/2026/1/16 0:20:40/文章来源:
12306网站能不能用银河二计算机做服务器啊慢得要死,网页网站,seo关键词优化技巧,wordpress 百度站长转载#xff1a;http://www.cnblogs.com/lizhenghn/p/3619091.html 在前面我们介绍了循环服务器#xff0c;并发服务器模型。简单的循环服务器每次只能处理一个请求#xff0c;即处理的请求是串行的#xff0c;效率过低#xff1b;并发服务器可以通过创建多个进程或者是线…转载http://www.cnblogs.com/lizhenghn/p/3619091.html 在前面我们介绍了循环服务器并发服务器模型。简单的循环服务器每次只能处理一个请求即处理的请求是串行的效率过低并发服务器可以通过创建多个进程或者是线程来并发的处理多个请求。但是当客户端增加时就需要创建更多的进程或者线程就会导致系统负载最终转移到进程或线程的切换开销上。 为了减少这类开销而使系统处理能力集中在核心业务上就要求我们降低并发的进程或线程数目因此又实现了一个更高级的IO复用循环服务器。I/O复用的循环服务器一般创建两个线程一个是客户端连接处理线程专门用来处理客户端的连接当有客户端到来的时候此线程把客户端的套接字描述符放到一块公共的区域中。另一个是业务处理线程此线程轮循(select)客户端套接字描述符集合中有没有数据到来如果有数据到来那么就进行处理。这样客户 端的增加并不会造成系统进程或线程数的明显增加而使其处理能力与CPU和内存直接相关。 TCP并发服务器模型 I/O多路复用模型伪代码 /* TCP并发服务器模型 I/O多路复用 */ /* 服务器主进程 */socket();bind();listen(); pthread_create( ); //创建客户端连接线程和业务处理线程pthread_join( ); //等待线程结束close( ); //关闭服务器套接字 /* 连接处理线程 */while(1){accept( ); //接受一个客户端连接store();//存储客户端套接字描述符到一个公共集合中}/* 业务处理线程 */while(1){get( ); //取出可用的客户端套接字描述符select( ); //设置监听读写文件描述符集合recv( );process( );send( );close( );} 一个I/O多路复用模型的例子 #include sys/types.h #include sys/socket.h #include netinet/in.h #include time.h #include string.h #include stdio.h #include pthread.h #include sys/select.h #define BUFFLEN 1024 #define SERVER_PORT 12349 #define BACKLOG 5 #define CLIENTNUM 1024 /**最大支持客户端数量*//*可连接客户端的文件描述符数组*/ int connect_host[CLIENTNUM]; int connect_number 0; static void *handle_request(void *argv) { time_t now; /*时间*/char buff[BUFFLEN];/*收发数据缓冲区*/int n 0;int maxfd -1;/*最大侦听文件描述符*/fd_set scanfd; /*侦听描述符集合*/struct timeval timeout; /*超时*/timeout.tv_sec 1; /* 阻塞1秒后超时返回 */ timeout.tv_usec 0; int i 0;int err -1;for(;;){ /*最大文件描述符值初始化为-1*/ maxfd -1;FD_ZERO(scanfd);/*清零文件描述符集合*/for(i0;iCLIENTNUM;i)/*将文件描述符放入集合*/{if(connect_host[i] ! -1)/*合法的文件描述符*/{FD_SET(connect_host[i], scanfd);/*放入集合*/if(maxfd connect_host[i])/*更新最大文件描述符值*/{maxfd connect_host[i];}}}/*select等待*/err select(maxfd 1, scanfd, NULL, NULL, timeout) ; switch(err){case 0:/*超时*/break;case -1:/*错误发生*/break;default:/*有可读套接字文件描述符*/if(connect_number0)break;for(i 0;iCLIENTNUM;i){/*查找激活的文件描述符*/if(connect_host[i] ! -1)if(FD_ISSET(connect_host[i],scanfd)) { memset(buff, 0, BUFFLEN);/*清零*/n recv(connect_host[i], buff, BUFFLEN,0);/*接收发送方数据*/if(n 0 !strncmp(buff, TIME, 4))/*判断是否合法接收数据*/{memset(buff, 0, BUFFLEN);/*清零*/now time(NULL);/*当前时间*/sprintf(buff, %24s\r\n,ctime(now));/*将时间拷贝入缓冲区*/send(connect_host[i], buff, strlen(buff),0);/*发送数据*/}/*关闭客户端*/close(connect_host[i]); /*更新文件描述符在数组中的值*/connect_host[i] -1;connect_number --; /*客户端计数器减1*/ } }break; } } return NULL; }static void *handle_connect(void *argv) { int s_s *((int*)argv) ;/*获得服务器侦听套接字文件描述符*/int s_c -1;/*连接客户端文件描述符*/struct sockaddr_in from;int len sizeof(from);/*接收客户端连接*/for(;;){int i 0;int s_c accept(s_s, (struct sockaddr*)from, len);/*接收客户端的请求*/printf(a client connect, from:%s\n,inet_ntoa(from.sin_addr));/*查找合适位置将客户端的文件描述符放入*/ for(i0;iCLIENTNUM;i){if(connect_host[i] -1)/*找到*/{/*放入*/connect_host[i] s_c;/*客户端计数器加1*/connect_number ;/*继续轮询等待客户端连接*/break; } } } return NULL; }int main(int argc, char *argv[]) {int s_s; /*服务器套接字文件描述符*/struct sockaddr_in local; /*本地地址*/ int i 0;memset(connect_host, -1, CLIENTNUM);/*建立TCP套接字*/s_s socket(AF_INET, SOCK_STREAM, 0);/*初始化地址接哦股*/memset(local, 0, sizeof(local));/*清零*/local.sin_family AF_INET;/*AF_INET协议族*/local.sin_addr.s_addr htonl(INADDR_ANY);/*任意本地地址*/local.sin_port htons(SERVER_PORT);/*服务器端口*//*将套接字文件描述符绑定到本地地址和端口*/int err bind(s_s, (struct sockaddr*)local, sizeof(local));err listen(s_s, BACKLOG);/*侦听*/pthread_t thread_do[2];/*线程ID*//*创建线程处理客户端连接*/pthread_create(thread_do[0],/*线程ID*/NULL,/*属性*/handle_connect,/*线程回调函数*/(void*)s_s); /*线程参数*//*创建线程处理客户端请求*/ pthread_create(thread_do[1],/*线程ID*/NULL,/*属性*/handle_request,/*线程回调函数*/NULL); /*线程参数*//*等待线程结束*/for(i0;i2;i)pthread_join(thread_do[i], NULL);close(s_s);return 0; }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/91645.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

钦州住房和城乡建设局网站wordpress id重置密码忘记

SpringBootWeb请求响应 前言 在上一次的课程中,我们开发了springbootweb的入门程序。 基于SpringBoot的方式开发一个web应用,浏览器发起请求 /hello 后 ,给浏览器返回字符串 “Hello World ~”。 其实呢,是我们在浏览器发起请求…

东莞美容网站建设中俄最新军事新闻

使用winscp实现图形化拖动的方式互传文件. 1.下载winscp软件并安装,官方地址: https://winscp.net/eng/index.php 2.打开软件: 文件协议选择scp,输入linux服务器的IP和端口号,然后输入你的用户名和密码就可以登陆了。…

氧os哪个网站做的最好深圳网站设计优刻

IlIlIlIl学号16082202032016-2017学年 第一学期《Windows程序设计》课程设计报告题目:拼图游戏设计专业:班级:姓名:指导教师:成绩:学院二0—六年十一月十五日TOC \o "1-5" \h \z \o "Current Document" 仁设计目的与要求31. 111 目白勺????…

访问国外网站好慢安康电商网站建设

msvcr110.dll文件是一个动态链接库(DLL)文件,由Microsoft Corporation开发。它是Visual C Redistributable for Visual Studio 2012的必要部分,包含了C运行时库函数的代码,这些函数为执行C/C应用程序提供了基础服务。这…

互联网网站文化e福州怎么代缴医保

目录 一、安装 二、常用目录 三、常用指令 四、用户指令 五、ssh与scp 六、服务相关 七、Python与Pycharm 八、Vim编辑器 九、Ubuntu22下使用Mysql 十、Ubuntu22下使用mongodb 十一、Ubuntu22下使用redis Ubuntu是一个基于Debian的开源操作系统,由Canoni…

html设计素材网站中华南大街网站建设

我的系统是ubuntu20.04,ros2的版本是humble,当运行gazebo仿真时,运行 ros2 launch gazebo_ros gazebo.launch.py命令,会出现以下问题: 此时,这个页面会卡死在第六行,gazebo也不会打开 但最后单…

宜州市住房保障和城乡建设局网站最新军事战争新闻

多年来,我曾在许多Java开发人员访谈中担任小组成员。 之前,我曾写过一篇标题为“成功进行软件工程师技术面试的7大技巧”的文章,其中涵盖了很少的一般准则。 在本文中,我将分享一个思维导图,其中包含Java开发人员访谈中…

用python做网站不常见酒泉网站建设专家

系列 Django 学习教程-介绍与安装-CSDN博客 欢迎来到第Djagno学习教程第二章Hello World 入门案例。 在本教程中,我将引导您完成django的Hello World入门案例。 让我们开始吧! 版本 Django 5.0Python 3.10 创建项目 安装 Django 之后&#xff0…

如何给网站做seo网店推广计划怎么写免费的

目录 前言 一、初识信号 二、信号的概念 三、信号的发送与捕捉 3.1 信号的发送 3.1.1 kill 命令 3.1.2 kill 函数 3.1.3 raise函数 3.1.4 abort函数 3.2 信号的捕捉 3.2.1 signal函数 3.2.2 sigaction函数 3.2.3 图示 四、信号的产生 4.1 硬件异常产生信号 4.2 …

做网站的关键词怎么判断好不好北京网站建设制作哪家公司好

目录 一、Vue 3 、Vue 2 对比及提升项 二、 Vue 3 创建app.vue示例 三、Vue3 的setup、Vue2 的 data对比 一、Vue 3 、Vue 2 对比及提升项 性能提升:Vue 3 做了大量的优化工作,提升了运行时的性能。例如,在模板编译时进行的静态分析和优化…

省级示范校建设网站设计类专业包括哪些

项目背景 某企业想提高现金流的利用率,以便产生更大的投资收益。遇到的问题是:何如在保证更多的资金流向高收益投资的同时,不出现资金短缺的问题。 确定可用于投资的金额 Step1 预测未来的收入、支出和余额 潜在逻辑: 现金流 = 收入 - 支出当月余额(资金存量)= 上月余…

网站开发 网络工程 哪个好焦作建设企业网站公司

文章目录什么是链表为什么不用结构体数组链表的操作创建表删除元素插入元素代码及运行结果什么是链表 链表是数据结构里面的一种,线性链表是链表的一种,线性链表的延伸有双向链表和环形链表。在编程语言中优化数据结构可以在处理大数据时大大降低程序的…

网站建设 项目文档阿里巴巴国际站运营教程

前言 现在已经进入招聘季节,本篇文章旨在分享知名互联网企业面试官面试方法和心得,希望通过本文的阅读能给程序员带来不一样的面试体验和感受,放松面试心态,积极备战! 面试题 PS:由于文章篇幅问题&#x…

wordpress网站的配置文件权重查询工具

行为型设计模式是面向对象编程中的一种模式,它关注的是对象之间的通信和协作,以实现特定的行为或任务。这些模式通常涉及到对象之间的消息传递、方法调用和协同工作,以达到更好的灵活性和可维护性。 行为型模式用于描述程序在运行时复杂的流程…

如何创建个人网站赚钱东营网站设计制作

这篇文章将总结Spring Integration(SI)的重要要点以及消息传递集成模式。 对于每个关键提示,我都会根据我的经验添加一个真实的示例。 分离器 一个。 它能做什么? 拆分器实际上是一种模式,它在某一点接收一条消息并将…

网站建设需要注意哪些问题网络营销的职能是什么?

现状分析 项目的需求用到编辑器,编辑器中又可能用到图片上传功能。 实现方案 1. 增加依赖库,可以参考前面的几篇文章,都有描述。 2. 核心代码实现 PictureSelector.create(GoodItemContentFragment.this) .openGallery(SelectMimeType.…

英语培训网站模板千库网素材官网

开发JSP自定义标记 您已经学习了如何用JavaBean处理JSP页面的业务逻辑。除此以外,您还可以用自定义标记处理JSP应用程序中反复出现的业务逻辑要求。 tag是程序中使用的执行重复性任务的可重用单元。例如, 是使主体文本在网页中间出现的HTML标记。JSP可用于创建于XML标记类似…

网站搭建学什么专业公司网站建设预算

​魔女司教和魔女的能力一点关系都没有,而且魔女教一开始是正常的,直到艾米莉亚父母死后才出现各种大罪司教发疯,怠惰是艾米莉雅的养父,艾米莉亚一族守护的封印被虚饰魔女入侵,怠惰为了守护强行融合了魔女基因&#xf…

古典风格网站模版怎么看网站建设

------> 课程视频同步分享在今日头条和B站 大家好,我是博哥爱运维,这节课带来k8s的流量入口ingress,作为业务对外服务的公网入口,它的重要性不言而喻,大家一定要仔细阅读,跟着博哥的教程一步步实操去理…

门户网站都有哪些技术支持 东莞网站建设 轴承

文章目录 主键盘搭建Google开源引擎音节分割工具类参考项目下载搭建好各个基础控件之后,就可以开发输入法的主界面和引擎了,这也是输入法的核心。 主键盘搭建 输入法的主界面本质上是一个QStackedWidget容器,将各个类型的输入键盘插入到容器中,然后根据业务需要切换不同的…