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

杭州seo网站优化免费推广平台

杭州seo网站优化,免费推广平台,珠海市企业网站建设,上海代办网站备案1、服务器版本介绍及实现 1、单进程单任务服务器(阻塞IO) 单进程模型,阻塞IO冲突,等待连接时无法读取数据,读取数据时无法连接 比较适合处理单任务,排队处理业务 伪代码 while(true) {addrlensizeof(c…

1、服务器版本介绍及实现

1、单进程单任务服务器(阻塞IO)

单进程模型,阻塞IO冲突,等待连接时无法读取数据,读取数据时无法连接

比较适合处理单任务,排队处理业务

伪代码

while(true)
{addrlen=sizeof(clientaddr);client_sock=accept(sock,&clientaddr,&addrlen);printf("显示连接信息");/*存储sock*//*IO处理*/while(RECV(buf)){//根据读取的数据,判定如何处理SEND(buf);//响应}
}

2、单进程多任务服务器(非阻塞IO)

代码

#include<sock.c>
#define server_ip "192.168.5.133"
#define server_port 9090int main()
{struct sockaddr_in client_addr;int server_sock;int client_sock;server_sock=net_initializer(NULL,server_port,128);socklen_t addrlen;printf("TCP IO Servers Running...\n");char cip[16];ssize_t len;client_info cf; char buf[1500];char* msg="Please try again\n";char tm[1024];int client_array[8000];for(int i=0;i<8000;i++)client_array[i]=-1;int flag;flag=fcntl(server_sock,F_GETFL);flag|=O_NONBLOCK;fcntl(server_sock,F_SETFL,flag);while(1){   addrlen=sizeof(client_addr);if((client_sock=ACCEPT(server_sock,(struct sockaddr*)&client_addr,&addrlen))>0){cf.sockfd=client_sock;inet_ntop(AF_INET,&client_addr.sin_addr.s_addr,cf.ip,16);cf.port=ntohs(client_addr.sin_port);first_response(cf);for(int i=0;i<8000;i++){if(client_array[i]==-1){client_array[i]=client_sock;break;}}}for(int i=0;i<8000;i++){if(client_array[i]!=-1){while((len=RECV(client_sock,buf,sizeof(buf),0))>0){if((strcmp(buf,"time\n"))==0){get_time(tm);SEND(client_sock,tm,strlen(tm),MSG_NOSIGNAL);bzero(tm,sizeof(tm));}else{SEND(client_sock,msg,strlen(msg),MSG_NOSIGNAL);}bzero(buf,sizeof(buf));}if(len==0){printf("client exit\n");close(client_sock);client_array[i]=-1;}}}}close(server_sock);printf("server done\n");return 0;
}

3、多进程多任务服务器(阻塞IO)

1、多进程模型流程

为了让服务端有更好的处理能力,单进程无法满足需求,所以要提升处理单元的数量,为每个客户端分配一个处理单元(Process),让客户端与处理单元绑定,有一个比较好的处理效果

避免阻塞冲突,因为每个处理进程都会分配一个客户端,相互之间没有影响

多进程模型优点

1、可以得到更多的系统时间片,提升服务器处理性能

2、具备并发性,某个进程阻塞,不会影响其他进程,不会导致服务器无法响应

3、即使某些进程放弃cpu,根据就近原则,服务器的其他进程也可以继续使用,cpu使用效率更高

多进程模型处理缺点

1、进程有庞大的内存开销与调度开销,并发数量取决于进程数量导致高并发

2、会出现大量创建销毁进程的开销,当客户端连接后再创建服务进程,不能及时响应

多进程设计思路

客户端调用connect函数连接服务端

服务端的父进程P只做连接,调用accept函数,accept函数返回值为一个新的套接字new_sock

连接成功,表示有新用户,此时父进程调用fork函数创建子进程,创建出了一个处理单元C

此时的子进程继承了父进程的new_sock,并且使用此套接字与客户端进行通信

多进程多任务的难点

回收,避免产生僵尸

只有父进程可以回收子进程,但如果父进程回收子进程,则会与连接操作产生冲突

因此,将父进程分为多个线程,主线程负责连接,普通线程负责回收

使用被动回收策略,父进程执行自身任务,子进程退出后,通知父进程,父进程再进行回收

将捕捉函数,改为回收函数,不按信号数量回收,应当将当前可回收的子进程全部回收释放,避免回收漏掉的问题

多进程模型的回收策略

多个线程,信号行为共享,但是屏蔽字不共享,每个线程拥有自己的屏蔽字

当进程调用函数陷入阻塞,如果在阻塞过程中,产生信号,系统会执行捕捉函数,阻塞函数会被中断

普通线程先设置捕捉,再解除屏蔽

http://www.ds6.com.cn/news/22779.html

相关文章:

  • 免费做金融网站有哪些全国病毒感染最新消息
  • 网站添加背景音乐推广放单平台
  • 专业建站推广企业今日头条官方正版
  • 怎么把asp网站做的好看怎么在百度上面打广告
  • 信得过的网站开发推广西安疫情最新通知
  • 只能在线观看的电影网站咋么做国外浏览器搜索引擎入口
  • 公司做网站用什么主机深圳网络推广渠道
  • 网站做点击收费标准seo的课谁讲的好
  • 国务院关于政府网站建设文件百度经验官网
  • 洛阳网站设计公司网站外包
  • 网站建设一年多少恰优化加速
  • 做海报的网站什么编辑seo公司是什么
  • 武汉新公司做网站|武昌专业做网站--武汉金宇盈科技有限公司谁有恶意点击软件
  • 做火情监控网站需要用什么系统网络推广图片
  • 常州高端网站建设公司百度竞价点击神器奔奔
  • 服务好的网站建设平台深圳最新政策消息
  • 福建省建设监理网官方网站河北seo推广公司
  • 自己做网站好做么网络营销的策略
  • 领动做的企业网站怎么样seo综合查询怎么用
  • 后缀的域名暂无法进行网站备案企业如何做网络推广
  • 电视台网站如何做新闻报道郑州网站推广电话
  • 遵义做网站的经典软文文案
  • 前后端分离的网站怎么做股票发行ipo和seo是什么意思
  • 日本做头像的网站有哪些打开百度
  • 建设网站怎么建设分类湖南网络推广排名
  • 青海省交通建设工程质量监督站网站互联网运营推广是做什么的
  • 淘宝客网站如何做推广方案搜索引擎推广法
  • wordpress 订阅者广州seo代理计费
  • 太原网站推广怎么做精准ip地址查询工具
  • 营业执照 网站开发seo实战培训费用