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

南宁网站建设策划方案专业软文发稿平台

南宁网站建设策划方案,专业软文发稿平台,下载页面设计,建设银行 产品管理中心网站目录 一.自带超时参数的函数 1.1 select函数 1.2 poll函数的自带超时检测参数 二、不带超时检测参数的函数 三、通过信号完成时间的设置 四、更新下载源 五、wireshark使用 5.1. 安装 5.2. wireshark 抓包 5.2.1 wireshark与对应的OSI七层模型 ​编辑5.2.2 包头分析 …目录 一.自带超时参数的函数 1.1 select函数 1.2 poll函数的自带超时检测参数 二、不带超时检测参数的函数 三、通过信号完成时间的设置 四、更新下载源 五、wireshark使用 5.1. 安装 5.2. wireshark 抓包 5.2.1 wireshark与对应的OSI七层模型 ​编辑5.2.2 包头分析 5.2.3 ip头 5.2.4udp头 5.2.5tcp头 六、三次握手 四次挥手 6.1三次握手 6.2四次挥手 七、面试总结 一.自带超时参数的函数 1.1 select函数 1、select函数的第五个参数就是设置的时间 2、当时间到达后该函数就会接触阻塞struct timeval {long tv_sec; /* seconds */long tv_usec; /* microseconds */};andstruct timespec {long tv_sec; /* seconds */long tv_nsec; /* nanoseconds */}; #includemyhead.hint main(int argc, const char *argv[]) {//1、定义检测容器fd_set readfds;//2、清空内容FD_ZERO(readfds);//3、将文件描述符放入集合中FD_SET(0, readfds);//4、定义超时时间变量struct timeval tv {5, 0};while(1){tv.tv_sec 5;tv.tv_usec 0;int res select(1, readfds, NULL, NULL, tv);if(res -1){perror(select error);return -1;}else if(res 0){printf(time out\n);return -1;}//判断if(FD_ISSET(0, readfds)){int num 0;scanf(%d, num);printf(触发键盘输入%d\n, num);}}return 0; }1.2 poll函数的自带超时检测参数 1、poll函数的第三个参数是以毫秒为单位的超时时间 2、当时间到达后会接触阻塞进而做相关事情 3、是一个整型变量值传递 #includemyhead.hint main(int argc, const char *argv[]) {//1、定义文件描述符集合struct pollfd pfd;pfd.fd 0; //表示检测的是0号文件描述符pfd.events POLLIN; //表示检测读事件//2、调用函数while(1){int res poll(pfd, 1, 5000);if(res -1){perror(poll error);return -1;}else if(res 0){printf(time out\n);return -1;}//判断if(pfd.revents POLLIN){int num 0;scanf(%d, num);printf(触发键盘输入%d\n, num);}}return 0; }二、不带超时检测参数的函数 1 对于套接字通信时可以使用setsockopt函数对应用层的SO_RCVTIMEO进行设置 2 如果时间已经到达那么对于的函数会返回-1并将错误码置为成EAGAIN #includemyhead.h #define SER_IP 192.168.125.113 #define SER_PORT 8888 #includeerrno.hint main(int argc, const char *argv[]) {//1、创建用于连接的套接字文件描述符int sfd socket(AF_INET, SOCK_STREAM, 0);if(sfd -1){perror(socket error);return -1;}//3\、设置地址能够快速重用int reuse 1;if(setsockopt(sfd, SOL_SOCKET, SO_REUSEADDR, reuse, sizeof(reuse))-1){perror(setsockopt error);return -1;}//2、绑定ip和端口号//2.1 准备地址信息结构体struct sockaddr_in sin;sin.sin_family AF_INET; //通信域sin.sin_port htons(SER_PORT); //端口号sin.sin_addr.s_addr inet_addr(SER_IP); //ip地址//2.2 绑定工作if(bind(sfd, (struct sockaddr*)sin, sizeof(sin)) -1){perror(bind error);return -1;}printf(bind success\n);//3、将套接字设置成被动监听状态if(listen(sfd, 128)-1){perror(listen error);return -1;}printf(listen success\n);//设置接受超时时间struct timeval tv {5, 0};if(setsockopt(sfd, SOL_SOCKET, SO_RCVTIMEO, tv, sizeof(tv))-1){perror(setsockopt error);return -1;}//4、阻塞等待客户端的连接//4.1 定义用于接受客户端信息的容器struct sockaddr_in cin;socklen_t addrlen sizeof(cin);int newfd accept(sfd, (struct sockaddr*)cin, addrlen);if(newfd -1){//判断是否因为超时而解除的阻塞if(errno EAGAIN){printf(time out\n);return -1;}perror(accept error);return -1;}printf([%s:%d]:发来连接请求\n, inet_ntoa(cin.sin_addr), ntohs(cin.sin_port));return 0; }三、通过信号完成时间的设置 #include unistd.hunsigned int alarm(unsigned int seconds); 功能设置一个定时器在时间到达后会发射一个SIGALRM的信号 参数以秒为单位的时间 如果参数设置成0表示取消该定时器 返回值如果该定时器之前没有定时器则返回0如果该定时器之前有定时器会返回上一个定时器剩余的秒数并更新上一个定时器为该定时器 #includemyhead.h//定义信号处理函数 void handler(int signo) {if(signo SIGALRM){printf(系统已经随机为您出一张牌\n);alarm(5);} }int main(int argc, const char *argv[]) {char ch; //用户选择的牌//将SIGALRM信号捕获到自定义函数中if(signal(SIGALRM, handler) SIG_ERR){perror(signal error);return -1;}while(1){alarm(5); //给出5秒考虑时间printf(请出牌);scanf(%c, ch);getchar();printf(您出的牌为%c\n, ch);}return 0; }四、更新下载源 cd /etc/apt/ sudo cp sources.list sources.list.save 将原镜像备份 sudo vim sources.list 将原镜像修改成阿里源/清华源如所述 4.1清华源 deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse 4.2阿里源 deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse 上述操作完毕后保存退出执行下列 sudo apt-get update 五、wireshark使用 5.1. 安装 wireshark的官方下载网站www.wireshark.org/ 5.2. wireshark 抓包 开始界面 wireshark是捕获机器上的某一块网卡的网络包当你的机器上有多块网卡的时候你需要选择一个网卡。双击需要的网卡开始抓包 5.2.1 wireshark与对应的OSI七层模型 服务器和客户端的代码不能都运行在ubuntu因为wireshark抓的是流经真实网卡的数据包。 若将服务器客户端都运行在ubuntu数据直接经过虚拟网卡通信而不会经过真实网卡。 5.2.2 包头分析 以太网头 以太网中封装了源mac地址以及目的mac地址还有ip类型以太网又称之为mac头 0X0800 只接收发往本机的mac的ip类型的数据帧  0X0806 只接收发往本机的ARP类型的数据帧 0x8035 只接受发往本机的RARP类型的数据帧 0X0003  接收发往本机的MAC所有类型ip,arp,rarp数据帧接收从本机发出去的数据帧 混杂模式打开的情况下会接收到非发往本地的MAC数据帧 5.2.3 ip头 IP头中需要掌握用于拆包的部分id flags fregment_offset 两个IP地址源IP与目的IP地址。 TTLtime to live, 指定数据帧可以最多经过几个路由器。当数据帧被目标方接收后TTL清除为0. Linux TTL:64 Winodws:TTL 128 5.2.4udp头 5.2.5tcp头 Seq序列号占4个字节用于给数据段进行编号的。所有非应答包的数据段都有seq。 Ack应答号用于应答非应答包握手包挥手包数据包。告诉对方下一次从这个seq编号发送数据包。 SYN握手包连接的时候产生的包 FIN挥手包断开连接产生的包 PSH数据包传输数据时候产生的包 ACK应答包 PSH Ack Seqlen; SYN FIN Ack Seq1; 六、三次握手 四次挥手 6.1三次握手 三次握手的发起方肯定是客户端 第一次握手客户端发送SYN包SYN1, seq0给服务器并进入SYN_SENT状态等待服务器返回确认包。第二次握手服务器接收到SYN包确认客户端的SYN发送ACK包ACK1 , ack1同时发送一个SYN包SYN1, seq0并进入SYN_RCVD状态。第三次握手客户端接收到服务器的SYN包以及ACK包进入establish状态同时向服务器发送ACK包ACK1, ack1。此时三次握手包发送完毕服务器也进入establish状态 6.2四次挥手 四次挥手的发起方可能是服务器也可能是客户端 第一次挥手主动关闭方发送一个FIN包FIN1, seq u给被动方进入FIN_WAIT_1状态第二次挥手被动方接收到FIN包给主动方发送一个ACK包ACK1, acku1并进入CLOKSE_WAIT状态。主动方接受到ACK包后进入FIN_WAIT_2状态。如果有数据没有发送完毕则继续发送直到发送完毕为止;第三次挥手被动方发送一个FIN包FIN1, seqw进入LAST_ACK状态.第四次挥手主动关闭方收到FIN包回复一个ACK包ACK1, ackw1。被动关闭方收到主动关闭方的ACK后关闭连接。 七、面试总结
http://www.dnsts.com.cn/news/119810.html

相关文章:

  • 东莞土木建筑学会网站显示电脑没有安装wordpress
  • 成都 网站建设培训wordpress 用js
  • 怎样做网站404简单的网页设计源代码
  • 深圳网站设计合理刻连云港做网站的
  • 网站前台可以打开亿网科技有限公司
  • 如何制作课程网站模板美食网页制作
  • 如何查看网站 是哪家做的网站运营方案
  • 掌握商务网站建设内容游戏推广怎么快速拉人
  • 如何做下载网站赚钱吗大沥南海网站建设
  • 有哪些公司的网站做的很好看android开发app实例
  • 公司网站建设南宁北京网页制作培训学校
  • 汕头企业自助建站怎么建立网站快捷方式
  • 东莞seo建站推广图片制作手机软件
  • 营销型手机网站建设怎么建立视频网站
  • 网站空间怎么进重庆企业网站建设哪家专业
  • 电商网站建设 问题 心得体会南宁微信公众号开发
  • 网站建设视频讲解重庆网站优化seo公司
  • 建网站要花费多少钱wordpress文章页打不开了
  • 各大网站投稿糟糕的网站设计
  • 上海外贸网站制作公司机加工自动报价系统软件
  • 优创智汇高端网站建设怎样设置默认网站
  • 百度网站提交收录内蒙旅游
  • 哪个兄弟来个直接看的网站怎么卸载安装好的wordpress
  • 佛山网站设计代理商影响网站速度吗
  • 关于网站建设项目收取费用兴国县城乡规划建设局网站
  • 公司怎么做网页网站学院网站建设项目的成本计划书
  • asp爆网站绝对路径南宁专业网站制作公司
  • 温州设计集团网站建设上海网页设计师培训班
  • 网络网站制作技巧网站开发实用技术答案
  • 做网站好用的cms网站知识介绍