int main() { int listenfd = TcpServer("127.0.0.1", 8976); epoll_t et; epoll_init(&et, listenfd, &run); while(1) { epoll_loop(&et); epoll_handle_fd(&et); } //epoll_destroy(&et); close(et.epoll_fd_); close(listenfd); }
int main(void) { // std::string filepath = "/home/chao/Desktop/project/spellcorrect/conf/my.conf"; MyConf myconf(filepath); myconf.init(); myconf.show(); std::map<std::string, std::string> my_map = myconf.get_map(); std::string sip = my_map["server_ip"]; std::string sport = my_map["server_port"]; std::stringstream ss(sport); int iport = 0; ss >> iport; std::cout << iport << std::endl; ThreadPool thp(50, 10); thp.start(); InetAddress inetAddr(sip, iport); Socket mySocket; mySocket.init(0, inetAddr); int listenfd = mySocket.get_sockfd(); epoll_t et; epoll_init(&et, listenfd, &foo ); while(1) { epoll_loop(&et); epoll_handle_fd(&et, thp); } epoll_destroy(&et); return 0; }
int main(int argc, char **argv) { epoll_loop(); return 0; }
int main(int argc, char **argv) { int c; /* command line arg */ int server_s; /* boa socket */ /* set umask to u+rw, u-x, go-rwx */ c = umask(~0600); if (c == -1) { perror("umask"); exit(1); } devnullfd = open("/dev/null", 0); /* make STDIN and STDOUT point to /dev/null */ if (devnullfd == -1) { DIE("can't open /dev/null"); } if (dup2(devnullfd, STDIN_FILENO) == -1) { DIE("can't dup2 /dev/null to STDIN_FILENO"); } if (dup2(devnullfd, STDOUT_FILENO) == -1) { DIE("can't dup2 /dev/null to STDOUT_FILENO"); } /* but first, update timestamp, because log_error_time uses it */ (void) time(¤t_time); while ((c = getopt(argc, argv, "c:r:d")) != -1) { switch (c) { case 'c': if (server_root) free(server_root); server_root = strdup(optarg); if (!server_root) { perror("strdup (for server_root)"); exit(1); } break; case 'r': if (chdir(optarg) == -1) { log_error_time(); perror("chdir (to chroot)"); exit(1); } if (chroot(optarg) == -1) { log_error_time(); perror("chroot"); exit(1); } if (chdir("/") == -1) { log_error_time(); perror("chdir (after chroot)"); exit(1); } break; case 'd': do_fork = 0; break; default: fprintf(stderr, "Usage: %s [-c serverroot] [-r chroot] [-d]\n", argv[0]); exit(1); } } fixup_server_root(); read_config_files(); open_logs(); server_s = create_server_socket(); init_signals(); drop_privs(); create_common_env(); build_needs_escape(); if (max_connections < 1) { struct rlimit rl; /* has not been set explicitly */ c = getrlimit(RLIMIT_NOFILE, &rl); if (c < 0) { perror("getrlimit"); exit(1); } max_connections = rl.rlim_cur; } /* background ourself */ if (do_fork) { switch(fork()) { case -1: /* error */ perror("fork"); exit(1); break; case 0: /* child, success */ break; default: /* parent, success */ exit(0); break; } } /* main loop */ timestamp(); status.requests = 0; status.errors = 0; start_time = current_time; #if defined _kqueue kqueue_loop(server_s); #elif defined _epoll epoll_loop(server_s); #else select_loop(server_s); #endif return 0; }
int main(void) { int iFd; struct sockaddr_in addr; printf("in the main\r\n"); /* 初始化epoll */ g_iEpollFd = epoll_create(200); if(RTMP_EPOLLSRV_INVALIDFD >= g_iEpollFd) { printf("create epoll failed\r\n"); return -1; } /* 创建侦听端口 */ iFd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if(RTMP_EPOLLSRV_INVALIDFD >= iFd) { printf("create listen socket failed\r\n"); return -1; } addr.sin_family = AF_INET; addr.sin_addr.s_addr = inet_addr(g_cRtmpSrvAddr); addr.sin_port = htons(g_usRtmpSrvPort); if( 0 != bind(iFd, (struct sockaddr *) &addr, sizeof(struct sockaddr_in))) { return -1; } if( 0 != listen(iFd, 200)) { return -1; } EPOLL_CTX *pEpollCtx = (EPOLL_CTX *)malloc(sizeof(EPOLL_CTX)); if(NULL == pEpollCtx) { return -1; } pEpollCtx->iFd = iFd; pEpollCtx->pfHandle = ListenHandle; pEpollCtx->pContext = NULL; /* 加入epoll */ if(0 != epoll_op(g_iEpollFd, EPOLL_CTL_ADD, iFd, EPOLLIN|EPOLLERR|EPOLLHUP, pEpollCtx)) { return -1; } g_iListenFd = iFd; epoll_loop(g_iEpollFd); return 0; }