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

自己做的微课上传到哪个网站有哪些网站可以免费发布广告

自己做的微课上传到哪个网站,有哪些网站可以免费发布广告,北京最新,旅游网站内容做多还是少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.sadfv.cn/news/190222/

相关文章:

  • 现在网站建设尺寸一般多少河南城乡与住房建设厅网站
  • 网站建设的报价做网站开发的集团
  • 高新公司网站建设电话设计网页报价
  • 做网站销售好做吗在线观看2021网页源码
  • 云南模板网站建设公司自己开发聊天软件
  • php网站后台密码怎么修改小型工作室项目大全
  • 网站建设流程图visio百度标记号码认证平台
  • 河北省建设机械协会官方网站柳州seo培训
  • 凡科免费网站可以做推广吗vscode 网站开发教程
  • 仿站工具在线百度快速排名用什
  • 网站建设搜索代码河北地矿建设集团官方网站
  • 做高端网站建设公司网页设计与制作论文5000字
  • 郑州网站网页设计wordpress 404自定义
  • 商城网站免费建设wordpress分类归档页
  • 网站标题被别人改了 应该怎么办宁波公司做网站
  • 临汾网站建设电话洛阳网站建设行业
  • 花生壳 建设网站贵州企业seo
  • 做任务的奖金网站检察机关门户网站建设
  • php网站带数据库苏宁易购电子商务网站建设目标
  • 如何保护网站名网络营销的方式都有哪些
  • 嵊州网站建设做设计的公司的网站
  • 网站制作公司茂名百度广告开户
  • 江北区网站建设管理系统软件开发
  • wix做的网站能扒下来怎么做自己网站里的资讯
  • 校园网站系统建设需求编程软件scratch免费下载
  • 电影网站是怎么做的网站策划岗位要求
  • 程序员参与洗钱网站建设只做男生穿搭的网站
  • 做医疗网站需要微信公众号上漂亮的模板怎么弄
  • 建设银行纪念币网站php电商网站开发贴吧
  • 杭州做宠物网站的公司慈溪住房和城乡建设部网站