先做一个简单实例:
#include <arpa/inet.h>
#include <assert.h>
#include <netinet/in.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/epoll.h>
#include <sys/socket.h>
#include <unistd.h>
#include <iostream>
#include "../epollctl.hpp"
void handlerClient(int clientFd) {
std::string msg;
if (not EchoServer::RecvMsg(clientFd, msg)) {
return;
}
EchoServer::SendMsg(clientFd, msg);
}
int main(int argc, char *argv[]) {
if (argc != 3) {
std::cout << "invalid input" << std::endl;
std::cout << "example: ./Epoll 0.0.0.0 1688" << std::endl;
return -1;
}
int sockFd = EchoServer::CreateListenSocket(argv[1], atoi(argv[2]), false);
if (sockFd < 0) {
return -1;
}
epoll_event events[2048];
int epollFd = epoll_create(1024);
if (epollFd < 0) {
perror("epoll_create failed");
return -1;
}
EchoServer::Conn conn(sockFd, epol