コード例 #1
0
ファイル: socket.c プロジェクト: BigBigXiong/WinsockExamples
int main(int argc, char* argv[])
{
    int acceptor;
    
    if (argc < 3) {
        printf("Usage: socket [node] [service].\n");
        return 1;
    }
    
    acceptor = create_acceptor(argv[1], argv[2]);
    if (acceptor == -1) {
        return 1;
    }
    fprintf(stdout, "server started at %s:%s.\n", argv[1], argv[2]);
    for (;;) {
        pthread_t tid;
        char straddr[40];
        struct sockaddr_in addr;
        int addr_len = sizeof(addr);
        int fd = accept(acceptor, (struct sockaddr*)&addr, &addr_len);
        if (fd == -1) {
            fprintf(stderr, "accept() failed, %s.\n", strerror(errno));
            break;
        }
        fprintf(stdout, "%s connected.\n", inet_ntop(AF_INET, &addr, straddr, addr_len));
        pthread_create(&tid, NULL, client_handler, (void*)fd);
    }
    close(acceptor);
    return 0;
}
コード例 #2
0
ファイル: testserver.c プロジェクト: gezidan/KendyNet
DWORD WINAPI Listen(void *arg)
{
	acceptor_t a = create_acceptor("192.168.6.87",8010,&accept_callback,arg);
	while(1)
		acceptor_run(a,100);
	return 0;
}
コード例 #3
0
ファイル: server.c プロジェクト: artek744/server
/*
static struct sigaction sa={
   .sa_handler = SIG_IGN
};
*/
int server(int port, int maxevents)
{
 
  // sigaction(SIGINT, &sa, 0);
  // sigaction(SIGTERM, &sa, 0);  
   
   int srv_fd = -1;
   int epoll_fd = -1;
	reactor* r = 0;
	event_handler* seh = 0;
   
   if((srv_fd=create_server(port,"127.0.0.1")) == -1){
      return -1;
   }
   if((epoll_fd = create_epoll(srv_fd, maxevents)) == -1){
      return -1;
   }
   r = create_reactor(epoll_fd, maxevents);
	seh = create_acceptor(srv_fd, r);
	r->add_eh(r, seh);
   r->event_loop(r);
   
   destroy_reactor(r);
   os_close(srv_fd);
   os_close(epoll_fd);
	return 0;
}
コード例 #4
0
ファイル: main.c プロジェクト: krodzik/ncm
int main(int argc, const char *argv[])
{
	// Read arguments from "config.cfg" file and printing them
	int port;
	int max_clients;
	if(get_config(&port, &max_clients))
		return(-1);

	// Main
	int srv_fd = -1;
	int epoll_fd = -1;

	reactor* r = 0;
	event_handler* seh = 0;

	if (init_server(&srv_fd, &epoll_fd, port, max_clients) != 0)
		return 1;

	r  = create_reactor(epoll_fd, max_clients);
	seh = create_acceptor(srv_fd, r);
	r->add_eh(r, seh);

	r->event_loop(r);

	return 0;
}
コード例 #5
0
ファイル: testserver.c プロジェクト: archyyu/kendylib
void *_Listen(void *arg)
{
	acceptor_t a = create_acceptor();
	add_listener(a,ip,port,accept_callback,arg);
	while(1)
		acceptor_run(a,100);
	return 0;
}
コード例 #6
0
ファイル: testserver.c プロジェクト: bigvaliant/kendylib
void *_Listen(void *arg)
{
	struct listen_arg* args[2];
	args[0] = (struct listen_arg*)calloc(1,sizeof(*args[0]));
	args[0]->ip = ip;
	args[0]->port = port;
	args[0]->accept_callback = &accept_callback;
	args[0]->ud = arg;
	args[1] = NULL;
	acceptor_t a = create_acceptor((struct listen_arg**)&args);
	free(args[0]);
	while(1)
		acceptor_run(a,100);
	return 0;
}
コード例 #7
0
ファイル: c_server.cpp プロジェクト: Mignet/zstorage
int c_server::listen()
{
	c_config::get_instance()->m_acceptor = create_acceptor(this);

	if (c_config::get_instance()->m_port <= 0 ||
		c_config::get_instance()->m_acceptor->_start_listen(c_config::get_instance()->m_port) != ERROR_NEWORK_SUCCESS)
	{
		LOG4_ERROR("listen:" << c_config::get_instance()->m_port << " error!");
	}
	else
	{
		LOG4_INFO("listen:" << c_config::get_instance()->m_port << " ok!");
	}

	return 0;
}
コード例 #8
0
ファイル: rpcserver.c プロジェクト: bestdotaer/kendylib
void *_Listen(void *arg)
{
	/*struct listen_arg* args[2];
	args[0] = (struct listen_arg*)calloc(1,sizeof(*args[0]));
	args[0]->ip = ip;
	args[0]->port = port;
	args[0]->accept_callback = &accept_callback;
	args[0]->ud = arg;
	args[1] = NULL;*/
	acceptor_t a = create_acceptor();
	add_listener(a,ip,port,accept_callback,arg);
	//free(args[0]);
	while(1)
		acceptor_run(a,100);
	return 0;
}
コード例 #9
0
ファイル: server.c プロジェクト: wjwjw/epoll-game-server
void server_work(engine_t * e) {
    create_acceptor();
    add_listener(e, IP, PORT);
}