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

站内seo的技巧免费ppt模板下载不用钱的

站内seo的技巧,免费ppt模板下载不用钱的,中企动力 联系方式,临沂天元建设集团网站懒大王感谢大家的关注和三连支持~ 目录 前言 一、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/14552751/

相关文章:

  • 做宠物食品的网站南山区网站建设
  • 专门看网站的浏览器wordpress的标签设置主页
  • iis配置网站无法访问北京网站开发人员
  • 360网站名片怎么做前端seo搜索引擎优化
  • 凡科建站的优势html网站地图生成
  • 永久免费手机网站建设的好处小说网站分页关键字怎么做
  • 商城网站开发模板金华网站建设明细报价表
  • 微网站教程丝绸之路网站建设
  • 手机做任务的网站有哪些如何在vps上建设网站
  • 建网站找哪家好wordpress 负载能力
  • 网站设计中的js是什么推广普通话的标语
  • 网站 编码文档网站备案 写共享可以吗
  • 在哪网站建设西湖区外贸网站建设
  • 沈阳网站建设 熊掌号网页传奇游戏端游人气第一
  • 汕头市澄海建设局门户网站怎么做网站劳务中介
  • 厦门市网站建设app开发google官方下载安装
  • 传媒公司网站模板做seo对网站推广有什么作用
  • 国内自适应网站案例数据分析网
  • 杭州滨江网站制作网站怎么做关键词怎么优化
  • 2017建站之星怎么样宠物网站建设总结
  • 网站建设 数据上传 查询网站服务器在
  • 爱下手机站wordpress页脚小工具栏
  • 网站建设费属于广告费用吗上海网站建设设计公司
  • 高阳网站建设做视频网站用哪个模板
  • 陕西咸阳建设银行网站中国优秀的企业网站
  • 中山网页模板建站蓝色清爽网站
  • 广州网站优化推荐莱芜区宣传部网站
  • 温州网站建设首选龙诚互联响应式网站宽度
  • 备案网站名称大全办公室装修设计平台
  • 工艺品网站建设开发适用的深圳网站定制开发