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

建网站用什么发票公众号代运营

建网站用什么发票,公众号代运营,网站焦点图多少钱,北京招聘网站建设(4)本实验代码的蓝本,是伊圣雨老师里的课本里的代码,略加改动而来的。 以下是 服务器端的代码: 每当收到客户端的报文时,就测试一下对应的 epoll 事件里的事件标志,不读取报文内容,…

(4)本实验代码的蓝本,是伊圣雨老师里的课本里的代码,略加改动而来的。
++以下是 服务器端的代码:

在这里插入图片描述

++ 每当收到客户端的报文时,就测试一下对应的 epoll 事件里的事件标志,不读取报文内容,所以设置为 ET 边缘触发模式。
++ 对应的代码版本 :

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <sys/epoll.h>
#include <fcntl.h> //增加这俩头文件
#include <errno.h>#define EPOLL_SIZE  50int main(int argc,char * argv[])
{   //验证 EPOLLHUP 等标志的服务器端, argc = 2int serv_sock, clnt_sock, str_len, i, epfd, event_cnt;struct sockaddr_in serv_adr, clnt_adr;socklen_t adr_sz;  struct epoll_event event, * ep_events;if(argc != 2) { printf("参数不是2个\n");exit(1); }serv_sock = socket(PF_INET,SOCK_STREAM,0);printf("创建了监听套接字,描述符为: %d\n",serv_sock);memset(&serv_adr,0,sizeof(serv_adr));serv_adr.sin_family = AF_INET; // 协议serv_adr.sin_addr.s_addr = htonl(INADDR_ANY);//IP地址serv_adr.sin_port = htons(atoi(argv[1])); //端口号bind( serv_sock,(struct sockaddr *)&serv_adr, sizeof(serv_adr) ) ;listen(serv_sock,5);epfd = epoll_create(EPOLL_SIZE); // EPOLL_SIZE = 50event.events  = EPOLLIN; // 监听套接字仍为水平触发模式event.data.fd = serv_sock;epoll_ctl(epfd, EPOLL_CTL_ADD, serv_sock, &event);ep_events = malloc(sizeof(struct epoll_event) * EPOLL_SIZE);while (1) // 此循环在正常情况下是不会退出的。{   event_cnt = epoll_wait(epfd, ep_events, EPOLL_SIZE, -1);       if(-1 == event_cnt) {  break; } // 出错则结束循环,进程退出   puts("从 epoll_wait() 返回了");//统计epoll_wait()的返回次数for(i = 0 ; i < event_cnt ; i++) //依次处理所有发生了事件的套接字{   if(ep_events[i].data.fd == serv_sock)//监听套接字{   adr_sz = sizeof(clnt_adr);clnt_sock = accept( serv_sock,(struct sockaddr *)&clnt_adr,&adr_sz );event.events = EPOLLIN | EPOLLHUP |EPOLLRDHUP | EPOLLET ;// 通信套接字用边缘触发是因为不准备读取报文event.data.fd = clnt_sock; epoll_ctl(epfd, EPOLL_CTL_ADD, clnt_sock, &event); printf("创建了通信套接字 id: %d\n", clnt_sock);} else { // 依次测试通讯套接字上有事件时具有的 epoll标志。uint32_t revents = ep_events[i].events; int fd = ep_events[i].data.fd;if( revents & EPOLLIN    ) printf("通信套接字 %d 上有 EPOLLIN    事件\n", fd);if( revents & EPOLLHUP   ) printf("通信套接字 %d 上有 EPOLLHUP   事件\n", fd);if( revents & EPOLLRDHUP ) printf("通信套接字 %d 上有 EPOLLRDHUP 事件\n", fd);}} // for(...)  } // while(...)return 0;  
}

(5) 接着给出客户端的版本,这是一个 linux 版本的客户端,很简单的小程序

在这里插入图片描述

++ 记录其源代码版本:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <sys/socket.h>int main(int argc,char * argv[])
{   // 回声客户端,三个参数,argc = 3int  sock, str_len;  struct sockaddr_in  serv_adr;if(argc != 3) { printf("参数不是3个\n");exit(1); }sock = socket(PF_INET,SOCK_STREAM,0);memset(&serv_adr,0,sizeof(serv_adr));serv_adr.sin_family = AF_INET;// serv_adr.sin_addr.s_addr = inet_addr(argv[1]);// inet_addr() 的语义不明,不好// 处理文本地址,只需使用 inet_pton() 与 inet_ntop() 即可。// int inet_pton(int af, const char *src, void *dst);inet_pton(AF_INET, argv[1], &serv_adr.sin_addr.s_addr);serv_adr.sin_port = htons(atoi(argv[2]));if(connect(sock, (struct sockaddr *)&serv_adr, sizeof(serv_adr)) != -1)puts("客户端套接字连接至服务器成功\n");sleep(60); // 延迟 60s 以观察实验结果close(sock); // 此行可注释,以验证 四次握手与 RST 报文的出现时机exit(0);
}

(6)后来实验中发现,客户端采用 linux 版本,会导致 wireshark 无法抓包,只好再编写 windows 版本的客户端,源代码如下:

在这里插入图片描述

++ 代码版:

#include <stdio.h>
#include <stdlib.h>
#include <winsock2.h>#pragma warning(disable : 4996) // 禁用关于 inet_addr 的过时警告int main() 
{WSADATA m_wsadata; // 在 windows平台使用 socket前,须做一下初始化,WSAStartup(0x0202, &m_wsadata); // 最后用 WSACleanup() 释放库。SOCKET sClient = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);SOCKADDR_IN       server_in;memset(&server_in, 0, sizeof(SOCKADDR_IN));  //连接服务器server_in.sin_family = AF_INET;server_in.sin_port = htons(9000); // 连接至 80 端口server_in.sin_addr.s_addr = inet_addr("192.168.1.126");connect(sClient, (struct sockaddr*)&server_in, sizeof(SOCKADDR_IN));for (int i = 0; i < 1000000000; i++); // 延时一下closesocket(sClient); // 关闭套接字的函数WSACleanup();         // 用这个函数关闭库return 0; 
}

++ 使用 windows 的套接字,还要设置一下 vs2019 ,要不然上面的代码会找不到外部函数

在这里插入图片描述

++ 以及:

在这里插入图片描述

(7) 以下给出实验结果,配合 wireshark 抓包

在这里插入图片描述

(8)

谢谢

http://www.15wanjia.com/news/16861.html

相关文章:

  • 做网站的时候卖过假货而出过事自助优化排名工具
  • 武汉网优化seo公司网站优化策略
  • 中国建设银行网站首页 定投百度ai人工智能
  • 信息门户登录入口阜新网站seo
  • 家装商城系统网站建设网站搭建的流程
  • 年终总结汇报ppt模板免费建站seo推广
  • 偃师做网站淮北seo排名
  • 品牌网站怎么建设深圳百度快速排名提升
  • 财经网站建设方案阳城seo排名
  • 创建网站目录权限商家联盟营销方案
  • 济南百度做网站今日国内新闻头条15条
  • 天宁网站建设制作东莞seo关键词
  • 设计交流网站的毕业论文公关公司是干嘛的
  • 口碑营销5t理论seo是什么意思 seo是什么职位
  • 网站和app的区别百度百度一下你就知道
  • 网站设计制作培训友情链接网站免费
  • 网站公安局备案 所需要的材料外国搜索引擎登录入口
  • 常见的微网站平台有哪些方面百度关键词多少钱一个月
  • 肇庆网站推广排名免费发帖论坛大全
  • 石家庄网站建设培训班百度ocpc如何优化
  • 网站外链建设方法手机一键优化
  • 电商网站订烟平台官网湖南网站seo找行者seo
  • markdown做网站模板公司seo是指什么意思
  • 个人网站服务器推荐百度写一篇文章多少钱
  • 企业网站建设论文山东潍坊疫情最新消息
  • 普洱市住房和城乡建设局网站搜索引擎国外
  • 做h5那个网站模板好北京网站提升排名
  • 公司网站建设企业网站宁德seo公司
  • 邢台市委领导班子名单最新西安seo排名外包
  • 网站建设 福州网站运营策划书