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

南京网站制作设计7k7k小游戏在线玩

南京网站制作设计,7k7k小游戏在线玩,怎样建立一个自己的网站免费,小程序模板下载从别的博主那copy过来#xff1a; 1 io_uring是Linux内核的一个新型I/O事件通知机制#xff0c;具有以下特点#xff1a; 高性能#xff1a;相比传统的select/poll/epoll等I/O多路复用机制#xff0c;io_uring采用了更高效的ring buffer实现方式#xff0c;可以在处理大量…从别的博主那copy过来 1 io_uring是Linux内核的一个新型I/O事件通知机制具有以下特点 高性能相比传统的select/poll/epoll等I/O多路复用机制io_uring采用了更高效的ring buffer实现方式可以在处理大量并发I/O请求时提供更高的吞吐量和低延迟。 异步io_uring支持异步I/O操作并且可以通过用户空间和内核空间之间的共享内存映射来避免数据拷贝从而减少了CPU的开销。 事件批处理io_uring可以将多个I/O操作合并成一个请求进行处理从而降低了系统调用的次数和上下文切换的开销。 灵活性io_uring提供了非常灵活的接口和配置选项可以根据应用程序的需要进行优化和调整。同时它还支持多线程操作和信号驱动I/O等功能。 2 安装 确认系统内核是5.10以后的版本还需安装liburing(依赖于内核的三个新的系统调用 io_uring_setup io_uring_register io_uring_enter 安装liburing库它对内核三个新的系统进行了封装 git clone https://github.com/axboe/liburing.git cd liburing/ ./configure make make install 由于github上不去  找了一个国内的源 git clone https://gitee.com/anolis/liburing.git   make install 可以看到  将 liburing.h 和静态库 动态库copy到了 系统目录 写一个测试程序   #include stdio.h #include string.h #include unistd.h#include sys/socket.h #include netinet/in.h #include errno.h#include liburing.h#define ENTRIES_LENGTH 1024enum {EVENT_ACCEPT 0,EVENT_READ,EVENT_WRITE };typedef struct _conninfo {int connfd;int event; } conninfo;// sizeof(conninfo) 8// 0, 1, 2 // 3, 4, 5void set_send_event(struct io_uring *ring, int sockfd, void *buf, size_t len, int flags) {struct io_uring_sqe *sqe io_uring_get_sqe(ring);io_uring_prep_send(sqe, sockfd, buf, len, flags);conninfo info_send {.connfd sockfd,.event EVENT_WRITE,};memcpy(sqe-user_data, info_send, sizeof(info_send));}void set_recv_event(struct io_uring *ring, int sockfd, void *buf, size_t len, int flags) {struct io_uring_sqe *sqe io_uring_get_sqe(ring);io_uring_prep_recv(sqe, sockfd, buf, len, flags);conninfo info_recv {.connfd sockfd,.event EVENT_READ,};memcpy(sqe-user_data, info_recv, sizeof(info_recv));}void set_accept_event(struct io_uring *ring, int sockfd, struct sockaddr *addr,socklen_t *addrlen, int flags) {struct io_uring_sqe *sqe io_uring_get_sqe(ring);io_uring_prep_accept(sqe, sockfd, addr, addrlen, flags);conninfo info_accept {.connfd sockfd,.event EVENT_ACCEPT,};memcpy(sqe-user_data, info_accept, sizeof(info_accept));}int main() {int sockfd socket(AF_INET, SOCK_STREAM, 0); // iostruct sockaddr_in servaddr;memset(servaddr, 0, sizeof(struct sockaddr_in)); // 192.168.2.123servaddr.sin_family AF_INET;servaddr.sin_addr.s_addr htonl(INADDR_ANY); // 0.0.0.0servaddr.sin_port htons(9999);if (-1 bind(sockfd, (struct sockaddr*)servaddr, sizeof(struct sockaddr))) {printf(bind failed: %s, strerror(errno));return -1;}listen(sockfd, 10); //liburingstruct io_uring_params params;memset(params, 0, sizeof(params));struct io_uring ring;io_uring_queue_init_params(ENTRIES_LENGTH, ring, params);struct io_uring_sqe *sqe io_uring_get_sqe(ring);struct sockaddr_in clientaddr;socklen_t clilen sizeof(struct sockaddr);set_accept_event(ring, sockfd, (struct sockaddr*)clientaddr, clilen, 0);char buffer[1024] {0};while (1) {io_uring_submit(ring);struct io_uring_cqe *cqe;io_uring_wait_cqe(ring, cqe);struct io_uring_cqe *cqes[10];int cqecount io_uring_peek_batch_cqe(ring, cqes, 10);//printf(cqecount -- %d\n, cqecount);int i 0;for (i 0;i cqecount;i ) {cqe cqes[i];conninfo ci;memcpy(ci, cqe-user_data, sizeof(ci));if (ci.event EVENT_ACCEPT) { // recv/sendif (cqe-res 0) continue;int connfd cqe-res;//printf(accept -- %d\n, connfd);set_accept_event(ring, ci.connfd, (struct sockaddr*)clientaddr, clilen, 0);set_recv_event(ring, connfd, buffer, 1024, 0);} else if (ci.event EVENT_READ) {if (cqe-res 0) continue;if (cqe-res 0) {close(ci.connfd);} else {printf(recv -- %s, %d\n, buffer, cqe-res);//set_recv_event(ring, ci.connfd, buffer, 1024, 0);set_send_event(ring, ci.connfd, buffer, cqe-res, 0);}} else if (ci.event EVENT_WRITE) { ////printf(write complete\n);set_recv_event(ring, ci.connfd, buffer, 1024, 0);} }io_uring_cq_advance(ring, cqecount);}getchar();}编译程序 gcc -o ioring ioring.cpp -luring -static之后程序起来之后 用网络调试助手 发送测试文字 先做个记录
http://www.yutouwan.com/news/187938/

相关文章:

  • 可以下载的建站网站上海备案证查询网站查询
  • 做kegg的网站代写文章的平台有哪些
  • 百度如何才能搜索到你的网站广州网站制作(信科网络)
  • 移动商城 网站建设方法方式丹阳网站建设开发
  • 企业门户网站建设与发展趋势网站开发工程师面试试题
  • 设计理念网站物流公司做网站
  • 做免费小说网站怎样赚钱城乡住房和城乡建设部网站
  • 鞋材 技术支持 东莞网站建设手机可以做网站吗?
  • 浦口区建设局网站成都市公共资源交易服务中心
  • 网站开发与网站建设黑帽seo技术有哪些
  • 做标准件网站建设网站需要什么
  • 怎么可以创建网站长春网络公司招聘
  • 做网站后台开发工资全球建筑设计公司排名
  • 英文版网站制作功能性的网站建设
  • 网站策划内容有哪些网站建设中招聘页面源码
  • 创建网站做搞笑视频网站建设技术网站建
  • 高端定制外贸网站一键视频制作免费软件
  • 建设网站需要用到哪些软件网站优化成都哪里好
  • 如何注册属于自己的网站网站标题用什么符号
  • 广东微信网站开发哪家好泰安最新通知
  • 肥西县市建设局网站专业网站制作电话
  • 景区网站建设 现状海门网页定制
  • 国内网站空间 优帮云网站登录不上怎么回事
  • 利用百度图片做网站外链logo制作网站免费
  • 深圳网站建设托管网店装修免费模板
  • 微信分销网站建设平台物联网应用技术是干什么的
  • asp网站访问量大wordpress简历
  • 网站建设考核标准平面设计笔记本电脑推荐
  • 银行门户网站建设方案苏州互联网公司多吗
  • 衡水网站建设一多软件招标网站开发