); // 设置与要处理的事件相关的文件描述符 ev.data.fd = listenfd; // 设置要处理的事件类型 ev.events = EPOLLIN | EPOLLET; // 注册 epoll 事件 epoll_ctl(epfd, EPOLL_CTL_ADD, listenfd, &ev); bzero(&serveraddr, sizeof(serveraddr)); serveraddr.sin_family = AF_INET; char *local_addr = "200.200.200.222"; inet_aton(local_addr, &(serveraddr.sin_addr));//htons(SERV_PORT); serveraddr.sin_port = htons(SERV_PORT); bind(listenfd, (sockaddr *) &serveraddr, sizeof(serveraddr)); listen(listenfd, LISTENQ); maxi = 0; for (;;) { // 等待 epoll 事件的发生 nfds = epoll_wait(epfd, events, 20, 500); // 处理所发生的所有事件 for (i = 0; i < nfds; ++i) { if (events[i].data.fd == listenfd) { connfd = accept(listenfd, (sockaddr *) &clientaddr, &clilen); if (connfd < 0) &nbs |