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

手机网站制作wordpress论坛模版

手机网站制作,wordpress论坛模版,开发一个商城网站需要多少钱,商务服务平台select实现TCP小型并发服务器的流程#xff1a;一、创建套接字#xff08;socket函数#xff09;#xff1a;通信域选择IPV4网络协议、套接字类型选择流式#xff1b; int sockfd socket(AF_INET,SOCK_STREAM,0); //通信域选择IPV4、套接字类型选择流式二、填充服务器的网…select实现TCP小型并发服务器的流程一、创建套接字socket函数通信域选择IPV4网络协议、套接字类型选择流式 int sockfd socket(AF_INET,SOCK_STREAM,0); //通信域选择IPV4、套接字类型选择流式二、填充服务器的网络信息结构体1.定义网络信息结构体变量2.求出网络信息结构体变量的内存空间大小以作备用3.网络信息结构体清04.使用IPV4网络协议AF_INET5.在终端输入的服务器端主机的IP地址inet_addr(argv[1])6.在终端输入的服务器端网络字节序的端口号htons(atoi(argv[2])) 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);五、创建要监听的文件描述符集合使用select函数后会将没有就绪的文件描述符在集合中去除所以需要创建两个文件描述符集合一个是母本read_fds类似于常量保持不变而另一个作为副本read_fds_t类似于变量可以改变 fd_set read_fds;FD_ZERO(read_fds);fd_set read_fds_t;FD_ZERO(read_fds_t);六、把创建的套接字添加到要监视的集合中 FD_SET(sockfd,read_fds);int fd_max 0;fd_max fd_max sockfd ? fd_max : sockfd;七、设置系统时间结构体变量用来指定超时的时间 struct timeval tm_out;八、等待文件描述符中的事件是否就绪成功则返回就绪的文件描述符的个数select函数select函数 #include sys/select.hint select(int nfds, fd_set *readfds, fd_set *writefds,fd_set *exceptfds, struct timeval *timeout);/*参数nfds 要监视的最大文件描述符1readfds 要监视的读文件描述符集合 不关心可以传NULLwritefds 要监视的写文件描述符集合 不关心可以传NULLexceptfds 要监视的异常文件描述符集合 不关心可以传NULLtimeout 超时时间 如果设置成NULL 会一直阻塞 直到有文件描述符就绪返回值成功 就绪的文件描述符的个数超时 0失败 -1 重置错误码*///struct timeval 可以指定超时时间//如果结构体的两个成员都为0 表示非阻塞struct timeval {long tv_sec; //秒 long tv_usec; //微秒};void FD_CLR(int fd, fd_set *set); //将文件描述符在集合中删除int FD_ISSET(int fd, fd_set *set); //判断文件描述符是否还在集合中// 返回0 表示不在了 非0 表示在void FD_SET(int fd, fd_set *set); //向集合中添加一个文件描述符void FD_ZERO(fd_set *set); //清空集合 if(-1 (ret select(fd_max 1,read_fds_t,NULL,NULL,tm_out))){perror(select error);exit(-1);}else if(0 ret){puts(timeout!!!!!);putchar(\n);continue;}九、遍历文件描述符集合判断哪些文件描述符已经准备就绪 for(int i 3; i fd_max 1 0 ! ret; i){...}十、判断文件描述符是否还在集合中并且接收来自客户端的数据recv函数和给客户端发送应答消息send函数 if(FD_ISSET(i,read_fds_t)){//说明有新的客户端连接服务器if(i sockfd){ if(-1 (accept_fd accept(sockfd,NULL,NULL))){perror(accept error);exit(-1);}printf(客户端[%d]连接到服务器\n,accept_fd);//将新连接的客户端的套接字添加到要监视的集合中FD_SET(accept_fd,read_fds);fd_max fd_max accept_fd ? fd_max : accept_fd;}else //之前连接的客户端在向服务器发送信息{memset(buf,0,sizeof(buf));if(-1 (nbytes recv(i,buf,sizeof(buf),0))){perror(recv error);exit(-1);}else if(0 nbytes){printf(客户端[%d]已断开连接\n,i);//将已断开连接客户端的套接字在文件描述符集合中剔除FD_CLR(i,read_fds);//关闭套接字close(i);continue;}if(!strncmp(buf,quit,4)){printf(客户端[%d]已退出\n,i);//将已断开连接客户端的套接字在文件描述符集合中剔除FD_CLR(i,read_fds);//关闭套接字close(i);continue;}printf(客户端[%d]发来信息[%s]\n,i,buf);//组装应答消息strcat(buf,----------k);//给客户端发送应答消息if(-1 send(i,buf,sizeof(buf),0)){perror(send error);exit(-1);}}ret--; //减少遍历次数}十一、关闭套接字close函数 close(sockfd);
http://www.hkea.cn/news/14390924/

相关文章:

  • 怎么把东西发布到网上卖宁波seo优化服务
  • 做h5比较好的网站c 视频网站开发入门
  • dede企业网站带留言板后台查询千锋教育官网
  • 免费代理免费拿货seo怎么推广
  • 长春做网站优化价格福州seo排名外包
  • 手机建网站制作合肥做网站好的公司哪家好
  • 网站建设 媒体广告建模教程
  • 苏州企业建设网站服务做一个搜索引擎网站要多少钱
  • 广东工程建设咨询有限公司网站桂林网红民宿
  • 北京app建设 网站开发公司中山网站建设技术
  • 2018网站的建设与维护前景建筑局网站
  • 云南网站建设优化技术学校网站怎么做优化
  • 济南医院网站建设服务公司青海移动网站建设
  • 怎么使用dw做一个网站微信群
  • 城乡建设规划网站抖音宣传推广
  • 安徽省住房和城乡建设厅网站查询mugeda做网站
  • 东莞教育建站藁城外贸网站建设
  • 08 iis创建网站曹妃甸建设工程招投标网站
  • 网站没有访问量营销网站建设品牌企业
  • 哈尔滨网站建设招聘网站建设相关图片
  • 营口网站开发公司合肥优秀网站建设
  • 网站管理系统改不了的wordpress博客被书为什么还
  • 青岛网站推跨境电商运营主要做什么
  • 怎么买网站免费一键生成转账截图
  • 做化妆品代理在那些网站比较多潍坊英文网站建设
  • 万网速成网站有哪些 功能网站内页模板
  • 教育主管部门建设的专题资源网站是有口碑的盐城网站开发
  • 山东省建设厅继续教育网站wordpress 搜索框样式
  • 企业网站示例wordpress 设置固定链接
  • ps如何做网站自己有网站源码就可以建设吗