int main(int argc, char* argv[]) { int acceptor; if (argc < 3) { printf("Usage: socket [node] [service].\n"); return 1; } acceptor = create_acceptor(argv[1], argv[2]); if (acceptor == -1) { return 1; } fprintf(stdout, "server started at %s:%s.\n", argv[1], argv[2]); for (;;) { pthread_t tid; char straddr[40]; struct sockaddr_in addr; int addr_len = sizeof(addr); int fd = accept(acceptor, (struct sockaddr*)&addr, &addr_len); if (fd == -1) { fprintf(stderr, "accept() failed, %s.\n", strerror(errno)); break; } fprintf(stdout, "%s connected.\n", inet_ntop(AF_INET, &addr, straddr, addr_len)); pthread_create(&tid, NULL, client_handler, (void*)fd); } close(acceptor); return 0; }
DWORD WINAPI Listen(void *arg) { acceptor_t a = create_acceptor("192.168.6.87",8010,&accept_callback,arg); while(1) acceptor_run(a,100); return 0; }
/* static struct sigaction sa={ .sa_handler = SIG_IGN }; */ int server(int port, int maxevents) { // sigaction(SIGINT, &sa, 0); // sigaction(SIGTERM, &sa, 0); int srv_fd = -1; int epoll_fd = -1; reactor* r = 0; event_handler* seh = 0; if((srv_fd=create_server(port,"127.0.0.1")) == -1){ return -1; } if((epoll_fd = create_epoll(srv_fd, maxevents)) == -1){ return -1; } r = create_reactor(epoll_fd, maxevents); seh = create_acceptor(srv_fd, r); r->add_eh(r, seh); r->event_loop(r); destroy_reactor(r); os_close(srv_fd); os_close(epoll_fd); return 0; }
int main(int argc, const char *argv[]) { // Read arguments from "config.cfg" file and printing them int port; int max_clients; if(get_config(&port, &max_clients)) return(-1); // Main int srv_fd = -1; int epoll_fd = -1; reactor* r = 0; event_handler* seh = 0; if (init_server(&srv_fd, &epoll_fd, port, max_clients) != 0) return 1; r = create_reactor(epoll_fd, max_clients); seh = create_acceptor(srv_fd, r); r->add_eh(r, seh); r->event_loop(r); return 0; }
void *_Listen(void *arg) { acceptor_t a = create_acceptor(); add_listener(a,ip,port,accept_callback,arg); while(1) acceptor_run(a,100); return 0; }
void *_Listen(void *arg) { struct listen_arg* args[2]; args[0] = (struct listen_arg*)calloc(1,sizeof(*args[0])); args[0]->ip = ip; args[0]->port = port; args[0]->accept_callback = &accept_callback; args[0]->ud = arg; args[1] = NULL; acceptor_t a = create_acceptor((struct listen_arg**)&args); free(args[0]); while(1) acceptor_run(a,100); return 0; }
int c_server::listen() { c_config::get_instance()->m_acceptor = create_acceptor(this); if (c_config::get_instance()->m_port <= 0 || c_config::get_instance()->m_acceptor->_start_listen(c_config::get_instance()->m_port) != ERROR_NEWORK_SUCCESS) { LOG4_ERROR("listen:" << c_config::get_instance()->m_port << " error!"); } else { LOG4_INFO("listen:" << c_config::get_instance()->m_port << " ok!"); } return 0; }
void *_Listen(void *arg) { /*struct listen_arg* args[2]; args[0] = (struct listen_arg*)calloc(1,sizeof(*args[0])); args[0]->ip = ip; args[0]->port = port; args[0]->accept_callback = &accept_callback; args[0]->ud = arg; args[1] = NULL;*/ acceptor_t a = create_acceptor(); add_listener(a,ip,port,accept_callback,arg); //free(args[0]); while(1) acceptor_run(a,100); return 0; }
void server_work(engine_t * e) { create_acceptor(); add_listener(e, IP, PORT); }