int startServer( appnetServer *serv ) { int sockfd[2]; int sock_count = 0; set_daemon( serv ); // memory alloc initServer( serv ); listenToPort( serv->listen_ip , serv->port , sockfd , &sock_count ); serv->listenfd = sockfd[0]; createWorkerProcess( serv ); createReactorThreads( serv ); __SLEEP_WAIT__; runMainReactor( serv ); destroyServer( serv ); __SLEEP_WAIT__; return 0; }
int startServer( aeServer* serv ) { int sockfd[2]; int sock_count = 0; //监听TCP端口,这个接口其实可以同时监听多个端口的。 listenToPort( serv->listen_ip, serv->port , sockfd , &sock_count ); serv->listenfd = sockfd[0]; //创建进程要先于线程,否则,会连线程一起fork了,好像会这样。。。 createWorkerProcess( serv ); //创建子线程,每个线程都监听所有worker管道 createReactorThreads( serv ); __SLEEP_WAIT__; //运行主reactor runMainReactor( serv ); //退出 destroyServer( serv ); return 0; }