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

西宁好的网站建设wordpress怎么添加备案号

西宁好的网站建设,wordpress怎么添加备案号,咸阳学校网站建设哪家好,网站框架设计并发概念#xff1a;并发是指两个或多个事件在同一时间间隔发生#xff1b;多线程实现TCP并发服务器的实现流程#xff1a;一、创建套接字#xff08;socket函数#xff09;#xff1a;通信域选择IPV4网络协议、套接字类型选择流式#xff1b; int sockfd socket(AF_IN…并发概念并发是指两个或多个事件在同一时间间隔发生多线程实现TCP并发服务器的实现流程一、创建套接字socket函数通信域选择IPV4网络协议、套接字类型选择流式 int sockfd socket(AF_INET,SOCK_STREAM,0); //通信域选择IPV4、套接字类型选择流式二、填充服务器的网络信息结构体1.定义网络信息结构体变量2.求出结构体变量的内存空间大小3.结构体清零4.使用IPV4网络协议5.预留给在终端输入的IP地址6.预留给在终端输入的网络字节序的端口号 struct sockaddr_in serveraddr; //定义网络信息结构体变量socklen_t serveraddrlen sizeof(serveraddr);//求出结构体变量的内存空间大小memset(serveraddr,0,serveraddrlen); //结构体清零serveraddr.sin_family AF_INET; //使用IPV4网络协议serveraddr.sin_addr.s_addr inet_addr(argv[1]); //IP地址serveraddr.sin_port htons(atoi(argv[2]));//网络字节序的端口号三、套接字和服务器的网络信息结构体进行绑定bind函数 int ret bind(sockfd,(struct sockaddr *)serveraddr,serveraddrlen);四、套接字设置成被动监听listen函数 int ret1 listen(sockfd, 5);五、阻塞等待客户端的连接accept函数 if(-1 (info.accept_fd accept(sockfd,(struct sockaddr *)(info.clientaddr),clientaddr_len))){perror(accept error);exit(-1);}六、若有客户端连接成功就创建线程专门用来和该客户端通信pthread_create函数 if(0 ! (ret1 pthread_create(thread_id,NULL,message_handling,info))){printf(pthread_create error : errno [%d] errstr [%s]\n,ret1,strerror(ret1));exit(EXIT_FAILURE);}七、将线程设置成分离属性线程结束后由操作系统回收资源pthread_detach函数 if(0 ! (ret2 pthread_detach(thread_id))){printf(pthread_create error : errno [%d] errstr [%s]\n,ret2,strerror(ret2));exit(EXIT_FAILURE);} 八、创建线程处理函数用来接收来自客户端的数据recv函数和给客户端发送应答消息send函数 //线程处理函数void *message_handling(void *arg);int nbytes recv(acceptfd,buf,sizeof(buf),0);printf(客户端发来数据[%s]\n,buf);strcat(buf,----k); //组装应答消息int ret2 send(acceptfd,buf,sizeof(buf),0);九、退出线程pthread_exit函数和关闭套接字close函数 close(info.accept_fd);pthread_exit(NULL);综合应用实例代码如下所示 //多线程实现TCP并发服务器 #include stdio.h #include stdlib.h #include string.h #include sys/types.h #include sys/socket.h #include pthread.h #include stdbool.h #include netinet/in.h #include netinet/ip.h #include arpa/inet.h #include unistd.htypedef struct INFO {int accept_fd;struct sockaddr_in clientaddr;}info_t;//线程处理函数 void *message_handling(void *arg);int main(int argc, char const *argv[]) {//入参合理性检查if(3 ! argc){printf(Usage : %s IP PORT\n,argv[0]);exit(-1);}//创建套接字int sockfd socket(AF_INET,SOCK_STREAM,0);if(-1 sockfd){perror(socket error);exit(-1);}//填充服务器网络信息结构体struct sockaddr_in serveraddr;socklen_t serveraddr_len sizeof(serveraddr);memset(serveraddr,0,serveraddr_len);serveraddr.sin_family AF_INET;serveraddr.sin_addr.s_addr inet_addr(argv[1]);serveraddr.sin_port htons(atoi(argv[2]));//将套接字与服务器网络信息结构体绑定if(-1 bind(sockfd,(struct sockaddr *)serveraddr,serveraddr_len)){perror(bind error);exit(-1);}//将套接字设置成被监听状态if(-1 listen(sockfd,5)){perror(listen error);exit(-1);}info_t info;pthread_t thread_id;int ret1 0;int ret2 0;socklen_t clientaddr_len sizeof(info.clientaddr);while(true){//等待客户端连接if(-1 (info.accept_fd accept(sockfd,(struct sockaddr *)(info.clientaddr),clientaddr_len))){perror(accept error);exit(-1);}//若有客户端连接成功就创建线程专门用来和该客户端通信if(0 ! (ret1 pthread_create(thread_id,NULL,message_handling,info))){printf(pthread_create error : errno [%d] errstr [%s]\n,ret1,strerror(ret1));exit(EXIT_FAILURE);}//将线程设置成分离属性线程结束后由操作系统回收资源if(0 ! (ret2 pthread_detach(thread_id))){printf(pthread_create error : errno [%d] errstr [%s]\n,ret2,strerror(ret2));exit(EXIT_FAILURE);}}close(sockfd);return 0; }void *message_handling(void *arg) {info_t info *(info_t *)arg;printf(客户端[%s : %d]连接到服务器\n,inet_ntoa(info.clientaddr.sin_addr),ntohs(info.clientaddr.sin_port));//接收客户端数据并作出应答int nbytes 0;char buf[128] {0};while(true){memset(buf,0,sizeof(buf));//接收消息if(-1 (nbytes recv(info.accept_fd,buf,sizeof(buf),0))){perror(recv error);break;}else if(0 nbytes){printf(客户端[%s : %d]断开了连接\n,inet_ntoa(info.clientaddr.sin_addr),ntohs(info.clientaddr.sin_port));break;}if(!strcmp(buf,quit)){printf(客户端[%s : %d]退出了\n,inet_ntoa(info.clientaddr.sin_addr),ntohs(info.clientaddr.sin_port));break;}printf(客户端[%s : %d]发来消息[%s]\n,inet_ntoa(info.clientaddr.sin_addr),ntohs(info.clientaddr.sin_port),buf);//组装应答strcat(buf,------k);//发送应答if(-1 send(info.accept_fd,buf,sizeof(buf),0)){perror(send error);break;}}close(info.accept_fd);pthread_exit(NULL);}本示例代码仅供参考
http://www.w-s-a.com/news/532210/

相关文章:

  • SEO案例网站建设重庆建站模板平台
  • 上海seo网站推广公司wordpress 小米商城主题
  • 搭建服务器做网站什么网站可以请人做软件
  • 上海建筑建材业网站迁移公家网站模板
  • 仿制别人的网站违法吗网站防火墙怎么做
  • 杨浦网站建设 网站外包公司如何进行网络推广
  • wordpress+仿站步骤超详细wordpress常用函数
  • 浙江手机版建站系统哪个好怎样黑进别人的网站
  • 企业网站搜索引擎推广方法装修网络公司
  • 网站运营优化建议wordpress 添加媒体
  • 用asp.net做网站计数器施工企业会计的内涵
  • 网站被黑咋样的网站建设 设计业务范围
  • 网站开发学哪种语言网站编辑器失效
  • WordPress插件提示信息江阴网站优化
  • 网站开发用的软件如何做网站内容管理
  • 扬州网站建设公司网站推广是什么岗位
  • 双线网站管理咨询公司是做什么
  • asia域名的网站贵州光利达建设工程有限公司局网站
  • 梅州南站济南做网络安全的公司
  • 网站源代码 phpseo营销推广费用
  • 南京专业制作网站深圳整装装修公司排名
  • 网站制作在哪里比较好网页设计的要点有哪些
  • 自己做网站原始代码高端品牌服装
  • 九度企业网站推广软件龙泉市建设局网站
  • 做个企业网网站怎么做专业3合1网站建设公司
  • 龙岩网站建设teams熊掌号公司网站的实例
  • 电商模板网站免费省级精品课程网站建设
  • 网站建设的规划书桂林生活最新网
  • 广东省建设工程执业中心网站wordpress的分类目录和标签
  • 甘肃省两学一做专题网站广东外发加工网