示例#1
0
int main(int argc, const char * argv[]) {
    if(argc != 2){
        printf("Usage: ./xxx port(port stands for the port wanna listen on.)\n");
        exit(1);
    }
    
    signal(SIGCHLD, SIG_IGN);
    
    if(!is_free()){
//        exit(0);
    }
    
    int port = atoi(argv[1]);
    
    struct sockaddr_in addr;
    bzero(&addr, sizeof(addr));
    addr.sin_family = AF_INET;
    addr.sin_addr.s_addr = htonl(INADDR_ANY);
    addr.sin_port = htons(port);
    
    int server_socket = socket(AF_INET, SOCK_STREAM, 0);
    bind(server_socket, (struct sockaddr *) &addr, sizeof(addr));
    listen(server_socket, 0);
    
    ProcessPool* pool = new ProcessPool(server_socket, 1, 10);
    pool->init();
    pool->addTask(print, NULL);
    pool->start();

    if(pool)
        delete(pool);
    exit(0);
}