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

简易EPOLL模型

简易epoll模型

#include<iostream>
#include <netinet/in.h>
#include<sys/fcntl.h>
#include<sys/socket.h>
#include<sys/epoll.h>
#include<arpa/inet.h>
#include <unistd.h>using namespace std;#define IP "192.168.229.134"
#define PORT 8001int main()
{//1,创建套接子int  sevfd = socket(AF_INET, SOCK_STREAM, 0);if(sevfd == -1){cout<<"创建套接子失败"<<endl;return 0;}//2,绑定IP和端口struct sockaddr_in sevaddr;sevaddr.sin_family = AF_INET;sevaddr.sin_addr.s_addr = inet_addr(IP);sevaddr.sin_port = htons(PORT);int ret1 = bind(sevfd,(sockaddr*)&sevaddr,sizeof(sevaddr));if(ret1 == -1){cout<<"绑定IP和端口失败"<<endl;}listen(sevfd, 100);//epollint epofd = epoll_create(1);if(epofd == -1){cout<<"epoll_create 失败"<<endl;}struct epoll_event  event;event.events = EPOLLIN;event.data.fd = sevfd;epoll_ctl(epofd, EPOLL_CTL_ADD, sevfd, &event);struct epoll_event  evs[1024];while(true){int  nfds =  epoll_wait(epofd, evs, 1024, 1);for(int i = 0;i < nfds;i++ ){if(evs[i].data.fd == sevfd){int clientfd = accept(sevfd,nullptr,nullptr);if(clientfd == -1){continue;}struct epoll_event  ev;ev.events = EPOLLIN;ev.data.fd = clientfd;epoll_ctl(epofd, EPOLL_CTL_ADD, clientfd, &ev);}else {char buffer[1024];recv(evs[i].data.fd,buffer,1024,0);cout<<buffer<<endl;}}}close(sevfd);
}

相关文章:

  • XTEA与TEA的区别
  • Linux信号捕捉技术深度解析
  • 统信桌面专业版如何使用python开发平台jupyter
  • CUDA安装与多版本管理
  • 安科瑞防逆流方案落地内蒙古中高绿能光伏项目,筑牢北疆绿电安全防线
  • 在MATLAB中使用自定义的ROS2消息
  • Next.js+prisma开发一
  • HTV 3.3 | 秒播无卡顿 直播源每天维护更新
  • 【STL】函数对象+常用算法
  • 【Modbus 通讯协议从入门到放弃二:实战】
  • Playwright 测试框架 - Java
  • 如何给windos11 扩大C盘容量
  • Python 训练营打卡 Day 44
  • 多进程与多线程:核心差异与实战选择
  • Linux 进程管理学习指南:架构、计划与关键问题全解
  • 2025年- H70-Lc178--17.电话号码的组合(回溯,组合)--Java版
  • 【cmder】--- Windows 下 cmder 经典常用快捷键 显著提高效率
  • el-draw的文件列表和清单内容布局实现
  • 杰理可视化SDK--系统死机异常调试
  • Flask-SQLAlchemy使用小结
  • 微官网建设/路由器优化大师
  • 网站留言板功能/许昌正规网站优化公司
  • 自己有域名如何做网站/推广方案如何写
  • 珠宝网站源码免费下载/竞价托管公司排名
  • 网站域名变更怎么查询/关键词优化排名用什么软件比较好
  • 个人网站建设的要点/怎样在平台上发布信息推广