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()));
}
예제 #2
0
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()));
}
예제 #4
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;
}