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

行业网站怎么建设软件开发属于什么行业类别

行业网站怎么建设,软件开发属于什么行业类别,网站备案授权书怎么填写,17网站一起做网店广州转载#xff1a;http://www.cnblogs.com/lizhenghn/p/3617666.html 与循环服务器的串行处理不同#xff0c;并发服务器对服务请求并发处理。循环服务器只能够一个一个的处理客户端的请求#xff0c;显然效率很低。并发服务器通过建立多个子进程来实现对请求的并发处理。并发…转载http://www.cnblogs.com/lizhenghn/p/3617666.html 与循环服务器的串行处理不同并发服务器对服务请求并发处理。循环服务器只能够一个一个的处理客户端的请求显然效率很低。并发服务器通过建立多个子进程来实现对请求的并发处理。并发服务器的一个难点是如何确定子进程的数据因为不清楚请求客户端的数目因此实现中通常采用事先分配一定数目的子进程与动态增加子进程相结合的方法来实现并发服务器。 简单并发服务器模型 /* UDP简单并发服务器模型 */ /* 服务器主进程 */ socket(...); bind(...); fork(); //创建多个子进程进行请求处理 while(1); /* 服务器子进程1 */ while(1) {recvfrom(....);process(...);sendto(.....); } close(...); /* 服务器子进程2(同上) */ .................. .................. .................. /* 服务器子进程3(同上) */ .................. .................. .................. /* TCP简单并发服务器模型 */ /* 服务器主进程 */ socket(...); bind(...); fork();//创建多个子进程进行请求处理 while(1); /* 服务器子进程1 */ socket(...); bind(...); listen(...); while(1) {accept(...);recv(....)process(...);send(.....); } close(....); /* 服务器子进程2(同上) */ .................. .................. .................. /* 服务器子进程3(同上) */ .................. .................. .................. 一个并发服务器的例子 下面给出一个简单的并发服务器样子仍然模拟服务器对外提供时间服务器等待客户端到来并返回给客户端服务器的当前时间。 UDP循环服务器 1 /** UDP并发服务器--server端程序**/2 #include sys/types.h3 #include sys/socket.h4 #include netinet/in.h5 #include time.h6 #include string.h7 #include stdio.h8 #define BUFFLEN 10249 #define SERVER_PORT 12347 10 #define BACKLOG 5 11 12 static void handle_request(int s, struct sockaddr_in* from, char *buff) 13 { 14 time_t now; 15 int len sizeof(*from); 16 memset(buff, 0, BUFFLEN); 17 now time(NULL); 18 sprintf(buff, %24s\r\n,ctime(now)); 19 sendto(s, buff, strlen(buff),0, (struct sockaddr*)from, len);/*发送数据*/ 20 } 21 22 static void handle_connect(int s_s) 23 { 24 struct sockaddr_in from; /*客户端地址*/ 25 int len sizeof(from); 26 int n 0; 27 char buff[BUFFLEN]; 28 29 /*主处理过程*/ 30 while(1) 31 { 32 memset(buff, 0, BUFFLEN); 33 /*接收客户端连接*/ 34 n recvfrom(s_s, buff, BUFFLEN,0,(struct sockaddr*)from, len);/*接收发送方数据*/ 35 if(n 0 !strncmp(buff, TIME, 4))/*判断是否合法接收数据*/ 36 { 37 /*创建进程进行数据处理*/ 38 if(!fork()) 39 { 40 handle_request(s_s, from, buff);/*处理连接请求*/ 41 return ; 42 } 43 } 44 } 45 } 46 47 48 int main(int argc, char *argv[]) 49 { 50 int s_s; /*服务器套接字文件描述符*/ 51 struct sockaddr_in local; /*本地地址*/ 52 53 /*建立TCP套接字*/ 54 s_s socket(AF_INET, SOCK_STREAM, 0); 55 56 /*初始化地址接哦股*/ 57 memset(local, 0, sizeof(local)); 58 local.sin_family AF_INET;/*AF_INET协议族*/ 59 local.sin_addr.s_addr htonl(INADDR_ANY);/*任意本地地址*/ 60 local.sin_port htons(SERVER_PORT);/*服务器端口*/ 61 62 /*将套接字文件描述符绑定到本地地址和端口*/ 63 int err bind(s_s, (struct sockaddr*)local, sizeof(local)); 64 65 /*处理客户端连接*/ 66 handle_connect(s_s); 67 68 close(s_s); 69 70 return 0; 71 } TCP循环服务器 1 /** TCP并发服务器--server端程序**/2 #include sys/types.h3 #include sys/socket.h4 #include netinet/in.h5 #include time.h6 #include string.h7 #include stdio.h8 #define BUFFLEN 10249 #define SERVER_PORT 12347 10 #define BACKLOG 5 11 12 static void handle_request(int s_c) 13 { 14 time_t now; 15 char buff[BUFFLEN]; 16 int n 0; 17 memset(buff, 0, BUFFLEN); 18 n recv(s_c, buff, BUFFLEN,0);/*接收发送方数据*/ 19 if(n 0 !strncmp(buff, TIME, 4))/*判断是否合法接收数据*/ 20 { 21 memset(buff, 0, BUFFLEN); 22 now time(NULL); 23 sprintf(buff, %24s\r\n,ctime(now)); 24 send(s_c, buff, strlen(buff),0);/*发送数据*/ 25 } 26 /*关闭客户端*/ 27 close(s_c); 28 } 29 30 static void handle_connect(int s_s) 31 { 32 int s_c; /*客户端套接字文件描述符*/ 33 struct sockaddr_in from; /*客户端地址*/ 34 int len sizeof(from); 35 36 /*主处理过程*/ 37 while(1) 38 { 39 /*接收客户端连接*/ 40 s_c accept(s_s, (struct sockaddr*)from, len); 41 if(s_c 0)/*客户端成功连接*/ 42 { 43 /*创建进程进行数据处理*/ 44 if(fork() 0)/*父进程*/ 45 { 46 close(s_c);/*关闭父进程的客户端连接套接字*/ 47 } 48 else 49 { 50 handle_request(s_c);/*处理连接请求*/ 51 return ; 52 } 53 } 54 } 55 } 56 57 58 int main(int argc, char *argv[]) 59 { 60 int s_s; /*服务器套接字文件描述符*/ 61 struct sockaddr_in local; /*本地地址*/ 62 63 /*建立TCP套接字*/ 64 s_s socket(AF_INET, SOCK_STREAM, 0); 65 66 /*初始化地址*/ 67 memset(local, 0, sizeof(local)); 68 local.sin_family AF_INET;/*AF_INET协议族*/ 69 local.sin_addr.s_addr htonl(INADDR_ANY);/*任意本地地址*/ 70 local.sin_port htons(SERVER_PORT);/*服务器端口*/ 71 72 /*将套接字文件描述符绑定到本地地址和端口*/ 73 int err bind(s_s, (struct sockaddr*)local, sizeof(local)); 74 err listen(s_s, BACKLOG);/*侦听*/ 75 76 /*处理客户端连接*/ 77 handle_connect(s_s); 78 79 close(s_s); 80 81 return 0; 82 } 注意 1. 为了方便退出server程序中对信号SIGINT信号进行了处理此时所有的进程都会退出 2. 并发服务器中的client程序与上一节介绍循环服务器时使用的client程序是一样的这里不在贴出来 请参考 Linux网络编程服务器模型选择之循环服务器 http://www.cnblogs.com/lizhenghn/p/3617608.html
http://www.zqtcl.cn/news/989348/

相关文章:

  • 如何开办网站微信公众平台号申请注册
  • 网站建设找哪个平台浦东区建设工程监督网站
  • 如何创业做网站设计公司工作室
  • 游戏网站建设多少中国煤炭建设协网站
  • 动态图表网站宁津做网站
  • 黑龙江生产建设兵团各连网站成功网站建设案例
  • 一级a做爰精免费网站肇庆网站制作软件
  • wordpress加分页北京优化生育
  • 乐至建设局网站工程项目管理软件哪个好
  • 太原公司网站建立wordpress插件直播
  • 比较有名的diy制作网站做照片视频的网站
  • 河北石家庄建设网站wordpress nginx apache
  • 上海免费网站建设品牌wordpress主题安装失败下载失败
  • 买公司的网站商城系统开发
  • 网页设计国外设计欣赏网站深夜视频在线免费
  • 做网站怎么租用服务器杭州网站建设hzyze
  • .asp 网站北京最新防疫信息
  • 网站上传用什么软件做视频教程114查询
  • 网站小图标素材网站开发需要提供哪些东西
  • 阿里巴巴国际站买家入口百度建网站多少钱
  • 为网站网站做代理怎么判wordpress 调用当前分类名称
  • 多用户网站管理系统定制网站建设与运营案例
  • 毕业设计做的网站抄袭网站开发执行文档
  • 自己做网站都要什么软件网址你懂我意思正能量不用下载
  • 网站内容的创新wordpress美食主题
  • 程序员做游戏还是做网站好雅安移动网站建设
  • wordpress伪静态大学seo诊断网站免费诊断平台
  • 企业网站模板下载软件商务网站规划与建设心得
  • 做网站的像素是多少钱郑州公司网页
  • 北京游戏网站建设特殊符号网站