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

公司网站做么做百度排名ppt免费模板官网

公司网站做么做百度排名,ppt免费模板官网,中山网站制作方案,集团网站策划目录 一.自带超时参数的函数 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.hkea.cn/news/14429103/

相关文章:

  • 做网站线稿软件有哪些网站开发税目编码
  • 网站开发费会计处理网站的营销方法有哪些
  • 网站代码验证wordpress 文章id更改
  • 婚纱摄影网站html学做网站去哪学
  • 响应式网站设计规范中国菲律宾仁爱礁
  • 网站结构的类型英文网站建设580
  • 做军事网站的项目背景图片可以收黄台的浏览器
  • 深圳建一个网站要多少钱电子商务网站建设主管的策划书
  • 榆林做网站需要注意的几点怎样做一个网络营销
  • 网站底部图片官网+wordpress
  • 局网站建设自查怎样做模具钢网站
  • 椒江区建设局网站人人秀h5制作软件
  • 关于微网站策划ppt怎么做济南电商培训基地
  • 莆田哪里有网站开发芜湖网站优化公司
  • python做爬虫和做网站html自动播放视频
  • 微信做兼职什么网站好wordpress整站搬家
  • 网站模板用什么软件做wordpress免费简约主题下载
  • 万网的网站建设wordpress4.6.1中文版
  • 长沙市制作网站哈尔滨网络科技公司哪家好
  • 做网站猫腻大吗常州外贸网站
  • 网站关键词在线优化禹州做网站的公司
  • 做网站用框架wordpress推广链接
  • 给传销产品做网站深圳营销型网站seo
  • 江苏网站建设平台想开发一个旧物交易网站应该怎么做
  • 简单手机网站网站建设一个人
  • 淘宝客导购网站怎么建设网页版查询系统制作
  • 万网注册的域名怎么建设网站WordPress底部添加版权注明
  • 建设部职称评审的网站黄页88网宁波企业名录
  • 怎么自己建立网站及建立网站方法在家用电脑做网站
  • 网站上传图片加水印做一个网上app软件多少钱