コード例 #1
0
ファイル: aeserver.c プロジェクト: shitfSign/appnet_php7
aeServer* aeServerCreate( char* ip,int port )
{
    aeServer* serv = (aeServer*)zmalloc( sizeof(aeServer ));
    serv->runForever = startServer;
	serv->send =  sendMessageToReactor;
    serv->close = sendCloseEventToReactor;
	serv->sendToClient = anetWrite;
	serv->closeClient = freeClient;
    serv->listen_ip = ip;
    serv->port = port;
	serv->connectNum = 0;
    serv->reactorNum = 2;
    serv->workerNum = 3;
	serv->maxConnect = 1024;
	
    serv->connlist = shm_calloc( serv->maxConnect , sizeof( aeConnection ));
    serv->reactorThreads = zmalloc( serv->reactorNum * sizeof( aeReactorThread  ));
    serv->workers = zmalloc( serv->workerNum * sizeof(aeWorkerProcess));
    serv->mainReactor = zmalloc( sizeof( aeReactor ));
    
    serv->mainReactor->eventLoop = aeCreateEventLoop( 10 );
    aeSetBeforeSleepProc( serv->mainReactor->eventLoop ,initOnLoopStart );
    
    //安装信号装置
    installMasterSignal( serv  );
    servG = serv;
    
    return serv;
}
コード例 #2
0
ファイル: test.c プロジェクト: xldeng1203/appnet_php7
int main()
{

   info* list = shm_calloc( 10 , sizeof( info )); 
int n;
 for( n = 0 ;n < 3; n++)
{
    pid_t child;  
    if((child = fork()) == -1)  
    {  
        perror("fork");  
        exit(EXIT_FAILURE);  
    }  
    else if(child == 0)                 //子进程中  
    {
       int i;
	
	for( i =1; i < 10;i++ )
	{
	   list[n].a = i+100*n;
        }  
        sleep(1);
       for( i =1; i < 10;i++ )
        {
           printf( "child list.a=%d \n" , list[2-n].a );
        }    
	shm_free( list );   
       exit(0);  
    }  
    else      
    {  
	int i;
       	sleep( 2 );
	 for( i =0; i < 10;i++ )
        {
           printf( "parent list.a=%d \n" , list[i].a );
        }  
    }  
};

shm_free( list );
  return 0;
}
コード例 #3
0
ファイル: appnet_server.c プロジェクト: lchb369/appnet
void initServer( appnetServer *serv )
{
	
	serv->connlist = shm_calloc( serv->connect_max , sizeof(appnetConnection) );
	
	serv->reactor_threads =
			zmalloc( serv->reactor_num * sizeof(appnetReactorThread) );
	
	serv->workers = zmalloc( ( serv->worker_num + serv->task_worker_num ) *
			sizeof(appnetWorkerProcess) );
	
	serv->worker_pipes = zmalloc( ( serv->worker_num + serv->task_worker_num ) *
			serv->reactor_num * sizeof(appnetWorkerPipes) );
	
	srand( (unsigned) time( NULL ) );
	serv->main_reactor = zmalloc( sizeof(appnetReactor) );
	serv->main_reactor->event_loop = aeCreateEventLoop( 10 );
	
	aeSetBeforeSleepProc( serv->main_reactor->event_loop , initOnLoopStart );
	installMasterSignal( serv );
}