一个简单的epoll使用例子
核心代码,所有代码在这里 下载 #include "unixnet.h" #include "chat.h" #include "sys/epoll.h" /** * 改进说明:使用epoll进行事件回调,多用户可以处于输入命令状态(不再阻塞在登陆处) */ int main (int argc, char *argv[]) { int listen_fd; socklen_t cli_len; struct sockaddr_in cli_addr,serv_addr; int ret,flags; int re_use_addr=1; char recv_buf[MAXLINE]; int i; //epoll 描述符 int efd; struct epoll_event event; struct epoll_event events[MAXUSERS]; //初始化槽位 for(i=0; i<MAXUSERS; i++) { chater[i].slot_status =SLOT_FREED ; chater[i].sock_fd =-1; chater[i].cmd .cmd_type =-1; } /*AF_INET指定ipv4,SOCK_STREAM制定流模式,0为tcp*/ listen_fd = socket(AF_INET,SOCK_STREAM,0); if