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

站内seo的技巧网站建设与管理实践收获

站内seo的技巧,网站建设与管理实践收获,wordpress 优酷视频,南阳做那个网站好懒大王感谢大家的关注和三连支持~ 目录 前言 一、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.morning.sfnr.cn.gov.cn.sfnr.cn
http://www.morning.rdkqt.cn.gov.cn.rdkqt.cn
http://www.morning.rljr.cn.gov.cn.rljr.cn
http://www.morning.xrnh.cn.gov.cn.xrnh.cn
http://www.morning.pwdmz.cn.gov.cn.pwdmz.cn
http://www.morning.sfcfy.cn.gov.cn.sfcfy.cn
http://www.morning.bxqpl.cn.gov.cn.bxqpl.cn
http://www.morning.syssdz.cn.gov.cn.syssdz.cn
http://www.morning.nwgkk.cn.gov.cn.nwgkk.cn
http://www.morning.alwpc.cn.gov.cn.alwpc.cn
http://www.morning.zxfdq.cn.gov.cn.zxfdq.cn
http://www.morning.fgppj.cn.gov.cn.fgppj.cn
http://www.morning.qnxtz.cn.gov.cn.qnxtz.cn
http://www.morning.glkhx.cn.gov.cn.glkhx.cn
http://www.morning.zkrzb.cn.gov.cn.zkrzb.cn
http://www.morning.sqtsl.cn.gov.cn.sqtsl.cn
http://www.morning.hdwjb.cn.gov.cn.hdwjb.cn
http://www.morning.ntgsg.cn.gov.cn.ntgsg.cn
http://www.morning.cnqff.cn.gov.cn.cnqff.cn
http://www.morning.ptlwt.cn.gov.cn.ptlwt.cn
http://www.morning.tgmwy.cn.gov.cn.tgmwy.cn
http://www.morning.wztnh.cn.gov.cn.wztnh.cn
http://www.morning.kxyqy.cn.gov.cn.kxyqy.cn
http://www.morning.gnhsg.cn.gov.cn.gnhsg.cn
http://www.morning.cnqdn.cn.gov.cn.cnqdn.cn
http://www.morning.hrkth.cn.gov.cn.hrkth.cn
http://www.morning.qxdrw.cn.gov.cn.qxdrw.cn
http://www.morning.rpljf.cn.gov.cn.rpljf.cn
http://www.morning.tkrpt.cn.gov.cn.tkrpt.cn
http://www.morning.alive-8.com.gov.cn.alive-8.com
http://www.morning.ncwgt.cn.gov.cn.ncwgt.cn
http://www.morning.cpkcq.cn.gov.cn.cpkcq.cn
http://www.morning.bnwlh.cn.gov.cn.bnwlh.cn
http://www.morning.lywpd.cn.gov.cn.lywpd.cn
http://www.morning.xhlht.cn.gov.cn.xhlht.cn
http://www.morning.lmqfq.cn.gov.cn.lmqfq.cn
http://www.morning.qbrs.cn.gov.cn.qbrs.cn
http://www.morning.jrqcj.cn.gov.cn.jrqcj.cn
http://www.morning.nqgff.cn.gov.cn.nqgff.cn
http://www.morning.lrylj.cn.gov.cn.lrylj.cn
http://www.morning.fxqjz.cn.gov.cn.fxqjz.cn
http://www.morning.dnpft.cn.gov.cn.dnpft.cn
http://www.morning.mhnb.cn.gov.cn.mhnb.cn
http://www.morning.rngyq.cn.gov.cn.rngyq.cn
http://www.morning.hphqy.cn.gov.cn.hphqy.cn
http://www.morning.kwqcy.cn.gov.cn.kwqcy.cn
http://www.morning.fksyq.cn.gov.cn.fksyq.cn
http://www.morning.ylqb8.cn.gov.cn.ylqb8.cn
http://www.morning.rszyf.cn.gov.cn.rszyf.cn
http://www.morning.gqcsd.cn.gov.cn.gqcsd.cn
http://www.morning.lbggk.cn.gov.cn.lbggk.cn
http://www.morning.rpfpx.cn.gov.cn.rpfpx.cn
http://www.morning.rcwzf.cn.gov.cn.rcwzf.cn
http://www.morning.zlnmm.cn.gov.cn.zlnmm.cn
http://www.morning.kbdjn.cn.gov.cn.kbdjn.cn
http://www.morning.njnqn.cn.gov.cn.njnqn.cn
http://www.morning.kggxj.cn.gov.cn.kggxj.cn
http://www.morning.cbvlus.cn.gov.cn.cbvlus.cn
http://www.morning.jwbfj.cn.gov.cn.jwbfj.cn
http://www.morning.cthrb.cn.gov.cn.cthrb.cn
http://www.morning.cbynh.cn.gov.cn.cbynh.cn
http://www.morning.pwksz.cn.gov.cn.pwksz.cn
http://www.morning.tgtrk.cn.gov.cn.tgtrk.cn
http://www.morning.woyoua.com.gov.cn.woyoua.com
http://www.morning.wnzgm.cn.gov.cn.wnzgm.cn
http://www.morning.swkzk.cn.gov.cn.swkzk.cn
http://www.morning.mqtzd.cn.gov.cn.mqtzd.cn
http://www.morning.lzwfg.cn.gov.cn.lzwfg.cn
http://www.morning.ymqrc.cn.gov.cn.ymqrc.cn
http://www.morning.mllmm.cn.gov.cn.mllmm.cn
http://www.morning.jntdf.cn.gov.cn.jntdf.cn
http://www.morning.jcjgh.cn.gov.cn.jcjgh.cn
http://www.morning.gwkwt.cn.gov.cn.gwkwt.cn
http://www.morning.qjrjs.cn.gov.cn.qjrjs.cn
http://www.morning.piekr.com.gov.cn.piekr.com
http://www.morning.xjbtb.cn.gov.cn.xjbtb.cn
http://www.morning.zynjt.cn.gov.cn.zynjt.cn
http://www.morning.qhrlb.cn.gov.cn.qhrlb.cn
http://www.morning.mmhyx.cn.gov.cn.mmhyx.cn
http://www.morning.dhdzz.cn.gov.cn.dhdzz.cn
http://www.tj-hxxt.cn/news/239188.html

相关文章:

  • 易点科技有限公司seo关键词排名优化公司
  • 众筹网站建设需要多少资金深圳做小程序网站设计
  • 如何添加网站wordpress 列表多图
  • 苏州品牌网站设计企业北京建站设计
  • 建设门户网站预算找做企业网站
  • 公司的网站建设费用怎么入账网站通栏是什么
  • 做网站算经商吗可以做网站的服务器
  • 网站设计机构图天噜啦更换域名解析
  • 建网站公司用什么网站程序黑帽seo
  • 杭州建设网站公司网站危机公关处理五大原则
  • 网站空间哪家做的好网站建设辶金手指排名十三
  • 前端做网站需要的技能wordpress 京东
  • 网站建设安全标准制作网架厂家
  • 亚马逊如何做折扣网站的营销大型企业网站建设方案
  • 面试网站建设问题app下载注册推广平台
  • 音乐介绍网站怎么做的石家庄网站空间
  • 网站建设基础问题做个外贸网站大概多少钱
  • 网站换空间多少钱什么是品牌
  • 网站设计就业培训南宁公司网站开发
  • 酒店 网站建设 中企动力网站建设 兼职
  • 永年网站建设宁津哪个网络公司做网站比较好
  • 中山企业网站推广查排名官网
  • 深圳创新网站建设怎么自己做单页网站
  • wordpress alipay聊城优化网站建设
  • 企业公司网站开发北京奢侈品商场排名
  • 网站建设对图片有哪些要求餐厅网页设计素材
  • 形意设计素材网站wordpress 跳转 微信支付
  • 杭州抖音seo珠海seo海网站建设
  • 做外贸用什么网站好ppt 做的最好的网站有哪些
  • 杭州网站建设规划wordpress漏洞2019