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

高埗网站建设公司ftp备份网站

高埗网站建设公司,ftp备份网站,北京seo的排名优化,做神马网站优化有几个请求服务的客户端#xff0c;我们就创建几个子进程。 这个过程有以下三个阶段#xff1a; 这里父进程传递的套接字文件描述符#xff0c;实际上不需要传递#xff0c;因为子进程会复制父进程拥有的所有资源。 #include stdio.h #include stdlib.h…有几个请求服务的客户端我们就创建几个子进程。 这个过程有以下三个阶段 这里父进程传递的套接字文件描述符实际上不需要传递因为子进程会复制父进程拥有的所有资源。  #include stdio.h #include stdlib.h #include string.h #include unistd.h #include signal.h #include sys/wait.h #include arpa/inet.h #include sys/socket.h#define BUF_SIZE 30 void error_handling(char *message); void read_childproc(int sig);int main(int argc, char *argv[]) {int serv_sock, clnt_sock;struct sockaddr_in serv_adr, clnt_adr;pid_t pid;struct sigaction act;socklen_t adr_sz;int str_len, state;char buf[BUF_SIZE];if(argc!2) {printf(Usage : %s port\n, argv[0]);exit(1);}act.sa_handlerread_childproc;sigemptyset(act.sa_mask);act.sa_flags0;statesigaction(SIGCHLD, act, 0);serv_socksocket(PF_INET, SOCK_STREAM, 0);memset(serv_adr, 0, sizeof(serv_adr));serv_adr.sin_familyAF_INET;serv_adr.sin_addr.s_addrhtonl(INADDR_ANY);serv_adr.sin_porthtons(atoi(argv[1]));if(bind(serv_sock, (struct sockaddr*) serv_adr, sizeof(serv_adr))-1)error_handling(bind() error);if(listen(serv_sock, 5)-1)error_handling(listen() error);while(1){adr_szsizeof(clnt_adr);//因为父进程调用accept()受理连接请求所以创建子进程在后。clnt_sockaccept(serv_sock, (struct sockaddr*)clnt_adr, adr_sz);if(clnt_sock-1)continue;elseputs(new client connected...);pidfork();if(pid-1)//创建子进程失败{close(clnt_sock);continue;}if(pid0)//子进程{close(serv_sock);//关闭服务端的原因下面会解释while((str_lenread(clnt_sock, buf, BUF_SIZE))!0)write(clnt_sock, buf, str_len);close(clnt_sock);puts(client disconnected...);return 0;}else//父进程close(clnt_sock);//套接字已经复制给子进程所以销毁即可}close(serv_sock);return 0; }void read_childproc(int sig) {pid_t pid;int status;pidwaitpid(-1, status, WNOHANG);printf(removed proc id: %d \n, pid); } void error_handling(char *message) {fputs(message, stderr);fputc(\n, stderr);exit(1); } 上述代码是基于多进程实现的并发回声服务器。 解释为什么子进程可以关闭服务端套接字 在上述代码中子进程需要关闭服务端套接字的原因是服务端套接字已经在父进程中被创建并绑定到了指定的地址和端口而子进程继承了父进程的所有资源包括服务端套接字。如果子进程不关闭服务端套接字将会导致服务端套接字被重复绑定从而引发错误。另外子进程只需要处理与客户端的通信不需要再监听客户端的连接请求因此关闭服务端套接字对子进程的功能没有影响。
http://www.pierceye.com/news/844451/

相关文章:

  • 租用外国服务器网站网站建设电子商务论文选题方向
  • 网站建设那种语言好wordpress 首页添加链接
  • NET开发网站开发工程师招聘潍坊市网站建设公司
  • 自己开发网站怎么盈利开发游戏需要多少资金
  • 先域名 还是先做网站塘厦
  • 企业公众号以及网站建设wordpress 代码块样式
  • 网站源码搭建教程大同建设银行保安招聘网站
  • 无锡网站设wordpress营销模板
  • 建站哪个好一点wordpress直达按钮
  • 卢松松网站的百度广告怎么做的小程序开发成都公司
  • 导航网站头部代码android开发者官网
  • 网站设计需求分析报告做漫画的网站有哪些
  • 做什么网站吸引人sinaapp wordpress 固定链接
  • 东莞做网站怎么样搜狐综合小时报2022113011
  • 校园网站的意义融资渠道
  • 做网站上海公司自己制作一个网站需要什么软件
  • 铜川做网站电话app开发程序
  • 自助建微网站备案后修改网站名称
  • 免费网站正能量网站如何后台管理
  • 网站开发的质量标准网站如何做自适应
  • 黄南州wap网站建设公司wordpress里面怎么加链接
  • 五分钟自己创建网站的方法免费试用网站空间
  • 安徽平台网站建设找哪家辽宁建设工程信息网审核
  • 余姚住房和建设局网站10元备案域名购买
  • 企业网站制作公司盈利做支付行业招代理一般上什么网站
  • 网站制作电话wordpress支持PHP吗
  • 天津网站推广宣传拓者设计吧室内设计
  • 建设 信用中国 网站淘宝购物
  • 义乌论坛网站建设怎样建设智能网站
  • 重庆做网站 外包公司建设校园网站的必要性