コード例 #1
0
ファイル: server.c プロジェクト: presentzeng/2014
int main()
{
	int listenfd = TcpServer("127.0.0.1", 8976);
	epoll_t et;
	epoll_init(&et, listenfd, &run);


	while(1)
	{	
		epoll_loop(&et);	
		epoll_handle_fd(&et);
	}
	//epoll_destroy(&et);
	close(et.epoll_fd_);
	close(listenfd);	
}
コード例 #2
0
ファイル: main.cpp プロジェクト: songinfo/project
int main(void)
{
	//
	std::string filepath = "/home/chao/Desktop/project/spellcorrect/conf/my.conf";
	MyConf myconf(filepath);
	myconf.init();
	myconf.show();

	std::map<std::string, std::string> my_map = myconf.get_map();
	std::string sip = my_map["server_ip"];
	std::string sport = my_map["server_port"];
	std::stringstream ss(sport);
	int iport = 0;
	ss >> iport;
	std::cout << iport << std::endl;

	ThreadPool thp(50, 10);
	thp.start();



	InetAddress inetAddr(sip, iport);
	Socket mySocket;
	mySocket.init(0, inetAddr);

	int listenfd = mySocket.get_sockfd();

	epoll_t et;
	epoll_init(&et, listenfd, &foo );
	while(1)
	{
		epoll_loop(&et);
		epoll_handle_fd(&et, thp);

	}

	epoll_destroy(&et);

	return 0;
}
コード例 #3
0
ファイル: lemon.c プロジェクト: MatrixMuto/MyTestBeds
int main(int argc, char **argv) {
    epoll_loop();
    return 0;
}
コード例 #4
0
ファイル: boa.c プロジェクト: neha211/boa-server
int main(int argc, char **argv)
{
    int c;                      /* command line arg */
    int server_s;                   /* boa socket */

    /* set umask to u+rw, u-x, go-rwx */
    c = umask(~0600);
    if (c == -1) {
        perror("umask");
        exit(1);
    }

    devnullfd = open("/dev/null", 0);

    /* make STDIN and STDOUT point to /dev/null */
    if (devnullfd == -1) {
        DIE("can't open /dev/null");
    }

    if (dup2(devnullfd, STDIN_FILENO) == -1) {
        DIE("can't dup2 /dev/null to STDIN_FILENO");
    }

    if (dup2(devnullfd, STDOUT_FILENO) == -1) {
        DIE("can't dup2 /dev/null to STDOUT_FILENO");
    }

    /* but first, update timestamp, because log_error_time uses it */
    (void) time(&current_time);

    while ((c = getopt(argc, argv, "c:r:d")) != -1) {
        switch (c) {
        case 'c':
            if (server_root)
                free(server_root);
            server_root = strdup(optarg);
            if (!server_root) {
                perror("strdup (for server_root)");
                exit(1);
            }
            break;
        case 'r':
            if (chdir(optarg) == -1) {
                log_error_time();
                perror("chdir (to chroot)");
                exit(1);
            }
            if (chroot(optarg) == -1) {
                log_error_time();
                perror("chroot");
                exit(1);
            }
            if (chdir("/") == -1) {
                log_error_time();
                perror("chdir (after chroot)");
                exit(1);
            }
            break;
        case 'd':
            do_fork = 0;
            break;
        default:
            fprintf(stderr, "Usage: %s [-c serverroot] [-r chroot] [-d]\n", argv[0]);
            exit(1);
        }
    }

    fixup_server_root();
    read_config_files();
    open_logs();
    server_s = create_server_socket();
    init_signals();
    drop_privs();
    create_common_env();
    build_needs_escape();

    if (max_connections < 1) {
        struct rlimit rl;

        /* has not been set explicitly */
        c = getrlimit(RLIMIT_NOFILE, &rl);
        if (c < 0) {
            perror("getrlimit");
            exit(1);
        }
        max_connections = rl.rlim_cur;
    }

    /* background ourself */
    if (do_fork) {
        switch(fork()) {
        case -1:
            /* error */
            perror("fork");
            exit(1);
            break;
        case 0:
            /* child, success */
            break;
        default:
            /* parent, success */
            exit(0);
            break;
        }
    }

    /* main loop */
    timestamp();

    status.requests = 0;
    status.errors = 0;

    start_time = current_time;

    #if defined _kqueue
        kqueue_loop(server_s);

    #elif defined _epoll
        epoll_loop(server_s);

    #else
        select_loop(server_s);

    #endif

    return 0;
}
コード例 #5
0
int main(void)
{
	int iFd;
	struct sockaddr_in addr;
	
	printf("in the main\r\n");
	/* 初始化epoll */
	g_iEpollFd = epoll_create(200);
	if(RTMP_EPOLLSRV_INVALIDFD >= g_iEpollFd)
	{
		printf("create epoll failed\r\n");
		return  -1;
	}

	
	/* 创建侦听端口 */
	iFd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
	if(RTMP_EPOLLSRV_INVALIDFD >= iFd)
	{
		printf("create listen socket failed\r\n");
		return  -1;
	}
	addr.sin_family = AF_INET;
	addr.sin_addr.s_addr = inet_addr(g_cRtmpSrvAddr);
	addr.sin_port = htons(g_usRtmpSrvPort);

	if( 0 != bind(iFd, (struct sockaddr *) &addr, sizeof(struct sockaddr_in)))
	{
		return  -1;	 
	}


	if( 0 != listen(iFd, 200))
	{
		return  -1;
	}

	EPOLL_CTX *pEpollCtx = (EPOLL_CTX *)malloc(sizeof(EPOLL_CTX));
	if(NULL == pEpollCtx)
	{
		return -1;
	}

	pEpollCtx->iFd = iFd;
	pEpollCtx->pfHandle = ListenHandle;
	pEpollCtx->pContext = NULL;
	/* 加入epoll */
	if(0 != epoll_op(g_iEpollFd, EPOLL_CTL_ADD, iFd, EPOLLIN|EPOLLERR|EPOLLHUP, pEpollCtx))
	{
		return -1;
	}

	g_iListenFd = iFd;

	epoll_loop(g_iEpollFd);
	

	
	return  0;
	
}