void CopySenderServer::incomingConnection(int socketID){ timer.stop(); socket = new QTcpSocket(); //set the socket descriptor to that client which connected if(!socket->setSocketDescriptor(socketID)){ destroyServer(); return; } connect(socket, SIGNAL(disconnected()), this, SLOT(destroyServer())); connect(socket, SIGNAL(readyRead()),this,SLOT(readyReadFunction())); }
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; }
CopySenderServer::CopySenderServer( QStringList *differentB, QStringList *differentBNos, Management *man, int mashId, QObject *parent) : QTcpServer(parent) { differentBuildDirectories = differentB; differentBuildIDs = differentBNos; management = man; machineId = mashId; firstTalk = true; QtConcurrent::run(this, &CopySenderServer::loadCompressPath); //the copier queue will be created at another location copierQueue = 0; socket = 0; zipFilesToDelete = false; timer.setInterval(30000); connect(&timer, SIGNAL(timeout()), SLOT(destroyServer())); }
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; }