当前位置: 首页 > 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.huolong8.cn/news/190222/

相关文章:

  • 不动产登记门户网站建设在线网站分析工具
  • 网站建设 电子政务建设飞鹰摩托车官方网站
  • 3000元建设个人网站深圳市建设工程交易服务网宝安分中心
  • sem广告网络快速排名优化方法
  • 外贸营销网站建设公司排名企业名录app哪个好
  • 杭州电子网站建设方案有没有给人做简历的网站
  • 单页网站利润定制衣服app软件哪个好
  • 网站代做多少钱网站服务器被黑怎么办
  • 驾考学时在哪个网站做怎么做企业官网
  • 服务周到的上海网站建设深圳微信商城网站设计公司
  • 网络推广的方法和技巧专业排名优化网站
  • 重庆门户网站悟空crm官网
  • 绍兴网站建设推广深圳最近一个星期新闻
  • 房产网站开发方案文化网站建设需要的功能
  • 深圳市多语言网站建设公司wordpress 整容模板
  • 网站开发编程的工作方法dw怎么做百度网站
  • 临汾推广型网站建设做网站该注意哪些基本要素
  • 如何用rp做网站步骤代理网关app未运行怎么办
  • 安阳网站开发wordpress 幻灯片插件使用
  • 聊城手机站网站公司电话电子商务网站建设课后答案
  • 设计品质网站建设软件开发的步骤
  • 网站建设制作德州网站修改需要什么
  • asp网站相册国外网站 国内访问速度
  • 企业网站优化服务公司怎么做外国网站卖东西
  • 做网站的时候卖过假货而出过事搭建网页游戏教程
  • 孙红雷做的二手车网站校园网站建设方案书
  • 百度新站关键词排名网站对齐原则
  • 网站安全建设seo交流论坛
  • 做网络推广网站有哪些论医院网站的建设
  • 个人网站开发实例jsp网站开发教学