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

大石网站建设自己创建平台型网站

大石网站建设,自己创建平台型网站,抄底券网站怎么做的,wordpress 积分 兑换一、TCP多进程并发 1.地址快速重用 先退出服务端#xff0c;后退出客户端#xff0c;则服务端会出现以下错误#xff1a; 地址仍在使用中 解决方法#xff1a; /*地址快速重用*/ int flag1,len sizeof (int); if ( setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, 后退出客户端则服务端会出现以下错误 地址仍在使用中 解决方法 /*地址快速重用*/     int flag1,len sizeof (int);     if ( setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, flag, len) -1) {               perror(setsockopt);               exit(1);     } 2.多进程并发 1fork函数 #include stdio.h #include wait.h #include stdlib.hint main(int argc, char *argv[]) {pid_t pid fork();if(pid 0){perror(fork);exit(0);}else if(pid 0){printf(This is child process.\n);}else{printf(This is father process.\n);wait(NULL);}return 0; } 2多个客户端 代码演示 #include stdio.h #include sys/socket.h #include sys/types.h #include stdlib.h #include arpa/inet.h #include unistd.h #include string.h #include strings.h#define BACKLOG 5 void ClinetHandle(int newfd); int main(int argc, char *argv[]) {int fd, newfd;struct sockaddr_in addr, clint_addr;socklen_t addrlen sizeof(clint_addr);pid_t pid;if(argc 3){fprintf(stderr, %saddrport\n, argv[0]);exit(0);}/*创建套接字*/fd socket(AF_INET, SOCK_STREAM, 0);if(fd 0){perror(socket);exit(0);}addr.sin_family AF_INET;addr.sin_port htons( atoi(argv[2]) );if ( inet_aton(argv[1], addr.sin_addr) 0) {fprintf(stderr, Invalid address\n);exit(EXIT_FAILURE);}/*地址快速重用*/int flag1,len sizeof (int); if ( setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, flag, len) -1) { perror(setsockopt); exit(1); } /*绑定通信结构体*/if(bind(fd, (struct sockaddr *)addr, sizeof(addr) ) -1){perror(bind);exit(0);}/*设置套接字为监听模式*/if(listen(fd, BACKLOG) -1){perror(listen);exit(0);}while(1){/*接受客户端的连接请求生成新的用于和客户端通信的套接字*/newfd accept(fd, (struct sockaddr *)clint_addr, addrlen);if(newfd 0){perror(accept);exit(0);}printf(addr:%s port:%d\n, inet_ntoa(clint_addr.sin_addr), ntohs(clint_addr.sin_port) );if( (pid fork() ) 0){perror(fork);exit(0);}else if(pid 0){close(fd);ClinetHandle(newfd);exit(0);}elseclose(newfd);}close(fd);return 0; } void ClinetHandle(int newfd){int ret;char buf[BUFSIZ] {};while(1){//memset(buf, 0, BUFSIZ);bzero(buf, BUFSIZ); //初始化ret read(newfd, buf, BUFSIZ);if(ret 0){perror(read);exit(0);}else if(ret 0)break;elseprintf(buf %s\n, buf);}close(newfd); } 二、僵尸进程处理 #include stdio.h #include sys/socket.h #include sys/types.h #include stdlib.h #include arpa/inet.h #include unistd.h #include string.h #include strings.h #include signal.h #include sys/wait.h#define BACKLOG 5 void SigHandle(int sig){if(sig SIGCHLD){printf(client exited\n);wait(NULL);} } void ClinetHandle(int newfd); int main(int argc, char *argv[]) {int fd, newfd;struct sockaddr_in addr, clint_addr;socklen_t addrlen sizeof(clint_addr);#if 0struct sigaction act;act.sa_handler SigHandle;act.sa_flags SA_RESTART;sigemptyset(act.sa_mask);sigaction(SIGCHLD, act, NULL); #elsesignal(SIGCHLD, SigHandle); #endifpid_t pid;if(argc 3){fprintf(stderr, %saddrport\n, argv[0]);exit(0);}/*创建套接字*/fd socket(AF_INET, SOCK_STREAM, 0);if(fd 0){perror(socket);exit(0);}addr.sin_family AF_INET;addr.sin_port htons( atoi(argv[2]) );if ( inet_aton(argv[1], addr.sin_addr) 0) {fprintf(stderr, Invalid address\n);exit(EXIT_FAILURE);}/*地址快速重用*/int flag1,len sizeof (int); if ( setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, flag, len) -1) { perror(setsockopt); exit(1); } /*绑定通信结构体*/if(bind(fd, (struct sockaddr *)addr, sizeof(addr) ) -1){perror(bind);exit(0);}/*设置套接字为监听模式*/if(listen(fd, BACKLOG) -1){perror(listen);exit(0);}while(1){/*接受客户端的连接请求生成新的用于和客户端通信的套接字*/newfd accept(fd, (struct sockaddr *)clint_addr, addrlen);if(newfd 0){perror(accept);exit(0);}printf(addr:%s port:%d\n, inet_ntoa(clint_addr.sin_addr), ntohs(clint_addr.sin_port) );if( (pid fork() ) 0){perror(fork);exit(0);}else if(pid 0){close(fd);ClinetHandle(newfd);exit(0);}elseclose(newfd);}close(fd);return 0; } void ClinetHandle(int newfd){int ret;char buf[BUFSIZ] {};while(1){//memset(buf, 0, BUFSIZ);bzero(buf, BUFSIZ);ret read(newfd, buf, BUFSIZ);if(ret 0){perror(read);exit(0);}else if(ret 0)break;elseprintf(buf %s\n, buf);}close(newfd); } 三、TCP并发多线程 #include stdio.h #include sys/socket.h #include sys/types.h #include stdlib.h #include arpa/inet.h #include unistd.h #include string.h #include strings.h #include pthread.h#define BACKLOG 5void *ClinetHandle(void *arg); int main(int argc, char *argv[]) {int fd, newfd;struct sockaddr_in addr, clint_addr;pthread_t tid;socklen_t addrlen sizeof(clint_addr);if(argc 3){fprintf(stderr, %saddrport\n, argv[0]);exit(0);}/*创建套接字*/fd socket(AF_INET, SOCK_STREAM, 0);if(fd 0){perror(socket);exit(0);}addr.sin_family AF_INET;addr.sin_port htons( atoi(argv[2]) );if ( inet_aton(argv[1], addr.sin_addr) 0) {fprintf(stderr, Invalid address\n);exit(EXIT_FAILURE);}/*地址快速重用*/int flag1,len sizeof (int); if ( setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, flag, len) -1) { perror(setsockopt); exit(1); } /*绑定通信结构体*/if(bind(fd, (struct sockaddr *)addr, sizeof(addr) ) -1){perror(bind);exit(0);}/*设置套接字为监听模式*/if(listen(fd, BACKLOG) -1){perror(listen);exit(0);}while(1){/*接受客户端的连接请求生成新的用于和客户端通信的套接字*/newfd accept(fd, (struct sockaddr *)clint_addr, addrlen);if(newfd 0){perror(accept);exit(0);}printf(addr:%s port:%d\n, inet_ntoa(clint_addr.sin_addr), ntohs(clint_addr.sin_port) );pthread_create(tid, NULL, ClinetHandle, newfd); //创建线程pthread_detach(tid); //设置为分离属性}close(fd);return 0; } void *ClinetHandle(void *arg){int ret;char buf[BUFSIZ] {};int newfd *(int *)arg; //传参强转while(1){//memset(buf, 0, BUFSIZ);bzero(buf, BUFSIZ);ret read(newfd, buf, BUFSIZ);if(ret 0){perror(read);exit(0);}else if(ret 0)break;elseprintf(buf %s\n, buf);}printf(client exited\n);close(newfd);return NULL; } Makefile CCgcc CFLAGS-Wall all:client server server:server.c     $(CC) $^ -Wall -o $ -lpthread clean:     rm client server
http://www.huolong8.cn/news/332007/

相关文章:

  • 不锈钢网站哪家最专业网站建设中的端口
  • 仿站小工具 wordpress成都好玩的地方
  • 备案的网站程序上传网站域名去哪买
  • 微信制作微网站开发企业建设好一个网站后 如何进行网站推广
  • 怎么查询网站的点击量小型网站搭建
  • 网站建设视频百度网盘杭州百度推广代理商
  • 建设银行网站电脑版企业整套vi设计都包含哪些
  • 柳州网站建设多少钱网站建设新发展
  • 广东企业黄页网站中企动力优秀网站
  • 如何做图片 网站 链接怎样上传网站到百度
  • 网站建设的专业术语wordpress 全站404
  • 网站主页设计教程北京网站建设百度排名
  • 出售企业网站备案资料揭阳网站制作价格
  • 泉州网站建设技术支持网站需求列表
  • 做网站是先做后台还是前端网页浏览器的缩写
  • html 网站新功能介绍开发电子商务网站的主流语言
  • 重庆勘察设计协会网站公益 建网站
  • 郑州企业网站快速优化多少钱做淘宝客如何引出图片到网站
  • 任丘网站建设公司上海定制网站建设推广
  • Wordpress加720云vr邢台seo技术
  • 在网站里面如何做支付工具wordpress实现mp4播放器
  • 有专门做房孑特卖的网站吗什么样的网站高大上
  • 做t恤的网站手机网站建设哪儿好
  • 淘宝联盟做返利网站wordpress cx-udy
  • 徐州智能建站怎么做深圳优化公司义高粱seo
  • 企业网站新闻wp怎么做做网站需要许可证吗
  • 专业的网站建设公哪家专业设计logo网站是平面设计不
  • 网站官网认证怎么做的五百丁简历模板免费
  • wordpress企业站模板下载维品网站建设
  • 哪个地区网站建设好软件开发培训机构前十