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

站内seo的技巧wordpress漂流瓶插件

站内seo的技巧,wordpress漂流瓶插件,物业公司取名字大全免费,免费的行情网站app软件大全懒大王感谢大家的关注和三连支持~ 目录 前言 一、UDP编程 UDP特点#xff1a; UDP框架: UDP函数学习 发送端代码案例如下#xff1a; 二、多路复用 前提讲述 select poll 三、图解如下 总结 前言 作者简介#xff1a; 懒大王敲代码#xff0c;… 懒大王感谢大家的关注和三连支持~       目录 前言 一、UDP编程 UDP特点 UDP框架: UDP函数学习  发送端代码案例如下 二、多路复用  前提讲述 select  poll 三、图解如下  总结         前言 作者简介 懒大王敲代码正在学习嵌入式方向有关课程stm32网络编程数据结构C/C等 今天给大家继续详细讲解网络编程基础知识希望能够帮到大家 欢迎大家点赞 收藏 ⭐ 加关注哦  一、UDP编程 UDP特点 UDP的特点不要连接只管发送数据因此不稳定易丢包。           UDP与TCP不同之处         1没有服务器跟客户端的观念         2没有accept和connect         3UDP实际对于网络需求略高一点 UDP框架: 发送端 :                                                                1创建socket套接字                                 2绑定自己的IP地址和端口号                         3声明别人的IP地址和端口号                         4发送数据(函数有变化)                 接收端:             1创建socket套接字             2绑定自己的IP地址和端口号             3声明别人的IP地址和端口号             4接收数据(函数有变化) UDP函数学习  1sendto             #include sys/types.h             #include sys/socket.h         int sendto(int sockfd, const void *buf, int len, unsigned int flags,                      const struct sockaddr *dest_addr, int addrlen);         功能:             发送数据(用第五参数定位对方的IP地址和端口号)         参数:             sockfd:套接字             buf发送缓冲区             len: 发送缓冲区的长度             flags默认为0             dest_addr:结构体(包含目标的IP和端口号)             addrlen结构体的长度         返回值:             成功返回发送字节数             失败返回-1并设置错误码                      2recvfrom             #include sys/types.h             #include sys/socket.h         int recvfrom(int sockfd, const void *buf, int len, unsigned int flags,                  const struct sockaddr *src_addr, socklen_t *addrlen);         功能:             接收数据(用第五参数定位对方的IP地址和端口号)         参数:             sockfd:套接字             buf接收缓冲区             len: 接收缓冲区的长度             flags默认为0             src_addr:结构体(包含目标的IP和端口号)             addrlen结构体的长度的指针         返回值:             成功返回接收字节数             失败返回-1并设置错误码 发送端代码案例如下 #include stdio.h #include sys/types.h #include sys/socket.h #include arpa/inet.h #include netinet/in.h #include string.h #include stdlib.h #include unistd.h #include pthread.h int main(int argc,char *argv[]) {if(argc5){printf(请输入./可执行 自己IP 自己端口号 目标IP 目标端口号\n);return -1;}//1创建socket套接字int sfd;sfd socket(AF_INET,SOCK_DGRAM,0);//注意换UDP类型if(sfd0){perror(socket);return -1;}//2绑定自己的IP和端口号struct sockaddr_in myself;myself.sin_family AF_INET;myself.sin_port htons(atoi(argv[2])); //9000myself.sin_addr.s_addr inet_addr(argv[1]);if(bind(sfd,(struct sockaddr *)myself,sizeof(myself))0){perror(bind);return -1;}//3声明别人的IP和端口号struct sockaddr_in other;other.sin_family AF_INET;other.sin_port htons(atoi(argv[4])); //8888other.sin_addr.s_addr inet_addr(argv[3]);//4发送数据char buf[50];while(1){bzero(buf,sizeof(buf));scanf(%s,buf);sendto(sfd,buf,strlen(buf),0,(struct sockaddr *)other,sizeof(other));}close(sfd);return 0; } 接收端代码案例如下 #include stdio.h #include sys/types.h #include sys/socket.h #include arpa/inet.h #include netinet/in.h #include string.h #include stdlib.h #include unistd.h #include pthread.h int main(int argc,char *argv[]) {if(argc5){printf(请输入./可执行 自己IP 自己端口号 目标IP 目标端口号\n);return -1;}//1创建socket套接字int sfd;sfd socket(AF_INET,SOCK_DGRAM,0);//注意换UDP类型if(sfd0){perror(socket);return -1;}//2绑定自己的IP和端口号struct sockaddr_in myself;myself.sin_family AF_INET;myself.sin_port htons(atoi(argv[2])); //8888myself.sin_addr.s_addr inet_addr(argv[1]);if(bind(sfd,(struct sockaddr *)myself,sizeof(myself))0){perror(bind);return -1;}//3声明别人的IP和端口号struct sockaddr_in other;other.sin_family AF_INET;other.sin_port htons(atoi(argv[4])); //9000other.sin_addr.s_addr inet_addr(argv[3]);//4接受数据char buf[50];int len sizeof(other);while(1){bzero(buf,sizeof(buf));recvfrom(sfd,buf,sizeof(buf),0,(struct sockaddr *)other,len);printf(发送方说:%s\n,buf);}close(sfd);return 0; } 二、多路复用  前提讲述 IO阻塞和IO非阻塞     int fcntl(int fd, int cmd, long arg); //改变文件描述符的特性       int flag       flag fcntl(sockfd, F_GETFL, 0);//F_GETFL获取文件描述符的特性       flag | O_NONBLOCK;//配置非阻塞       fcntl(sockfd, F_SETFL, flag);//设置文件描述符特性为非阻塞 select  select         int select(int nfds, fd_set *readfds, fd_set *writefds,                 fd_set *exceptfds, struct timeval *timeout);         功能就是将你要关心的文件描述符放入一个集合中将这个集合交给内核判断当集合中                 某个文件描述符被触发时解除阻塞。                 参数             nfds:最大文件描述符1             readfds读集合             writefds:写集合             exceptfds:异常集合             timeout超时时间         返回值:             成功返回那个被触发的文件描述符             失败返回-1并设置错误码         struct timeval {                long    tv_sec;         /* seconds */     秒                long    tv_usec;        /* microseconds */ 微妙            };                            void FD_ZERO(fd_set *fdset)  清除文件描述符集合             void FD_SET(int fd,fd_set *fdset)     将你要关心的文件描述符放入集合中             void FD_CLR(int fd,fd_set *fdset)     将文件描述符移除集合             int FD_ISSET(int fd,fd_set *fdset)     判断文件描述符是否在集合中                        fd_set是一个数据类型本质是一个字节数组。长度为1024.            readfds读集合,往读集合放入我们关心的0serfd描述符            当select解除阻塞说明这两个文件描述符有一个被触发了。            一旦有文件描述符被触发将移除集合中未触发的。再利用FD_ISSET去判断                poll poll         #include poll.h         int poll(struct pollfd* fds, nfds_t nfds, int timeout)         功能:             多路复用看哪个文件描述符就绪做对应操作看结构体第三参数是否被内核改变         参数:             fds结构体数组记             nfds要判断的文件描述符个数             timeout超时时间0表示不阻塞;0,阻塞的时间;默认设置为-1表示阻塞         返回值             成功返回0             失败返回-1并设置错误码         struct pollfd {             int     fd;            // 委托内核检测的文件描述符                你希望监听文件描述符0  用户设置             short   events;        // 委托内核检测文件描述符的什么事件        监听它被触发也就是有数据可读POLLIN 用户设置             short     revents     // 文件描述符实际发生的事件             内核设置         }   三、图解如下  总结 关于C/C网络编程基础知识超详细讲解第二部分的详解懒大王就先分享到这里了如果你认为这篇文章对你有帮助请给懒大王点个赞点个关注吧如果发现什么问题欢迎评论区留言
http://www.hkea.cn/news/14421965/

相关文章:

  • 单页的网站怎么做前程无忧网最新招聘信息
  • 最棒的网站建设投资公司名字起名大全
  • wordpress免费建站教程学做网站论坛全部视频
  • 网站流量统计系统深圳10大品牌策划公司
  • 建立一个网站的技术解决方案小公司网站用什么服务器划算
  • 百度站长平台官网死链提交色弱做网站
  • 专业网站建设软件开发网络服务器和个人计算机的区别
  • 网站模板库免费马云将来淘汰的十个行业网站建设
  • 泉州企业网站开发空间设计培训
  • 临沂手机网站开发制作公司jarvis wordpress
  • 网站建站公司一站式服务十大装修公司排行榜
  • 网站推广排名最新报价开发公司项目管理制度
  • 国家对网站建设补补贴北京网站建设 标准型 新翼
  • 阿里巴巴免费建网站cms管理手机网站模板下载
  • 移动建站平台有哪些wordpress找回密码邮件
  • 全网网站建设北京优化公司司
  • 江西网站制作的公司哪家好家在深圳光明业主论坛
  • 完整源码网站 seo 如何使用
  • 手机网站制作移动高端网站建设广西建设工程质量检测协会网站
  • 网站相互推广怎么做网站建设与管理习题一
  • 站长百科 wordpress最好最值得做的调查网站
  • 建设网站的服务费是指什么休闲会所网站建设
  • 南宁哪有网站建设公司wordpress瀑布流js
  • copyright 个人网站福州模板做网站
  • 浙江省工程建设协会网站设计灵感网站整理
  • 网站建设:博采网络seo网站营销公司哪家好
  • 建网站的要求外贸公司英文
  • 上海在线网站做艺术网站素材
  • 济南网站建设推荐企优互联不错品牌策划的五个步骤
  • 沧州礼品行业网站设计西宁网站建设哪家好