在linux后台开发实战操作中,epoll服务器,是必备技能。
我今天就写了一个最简单的TCP server,你稍微改改就可以用于简单的数据通信。
如果要实现别的功能,比如ET,非阻塞,数据缓存,那都要围绕读写函数改了。
主要的系统API:
int epoll_create(int size);
int epoll_wait(int epfd, struct epoll_event *events,int maxevents, int timeout);
int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);
以下是代码:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/epoll.h>
#define SERVER_IPADDR "0.0.0.0"
#define SERVER_PORT "1122"
#define EV_READ EPOLLIN
#define EV_WRITE EPOLLOUT
#define MAX_EVENT_NUMS 1024
static int clifds[MAX_EVENT_NUMS];
int startListenSocket(const char *ip