예제 #1
0
void TmtSocketServer::Task(void)
{
	if (m_SkStatus == enRecvOK || m_SkStatus == enSendAndRecvOK)
	{
		int revLen = RecvMsg((void*)pBuffer, m_BufferSize);
		ServerProcess(revLen);
	}
}
예제 #2
0
파일: server.cpp 프로젝트: allenwhale/np
void Server::Run(){
	epoll_event events[MAX_EPOLL_SIZE];
	int res;
	while(true){
		res = epoll_wait(epfd, events, MAX_EPOLL_SIZE, -1);
		for(int i=0;i<res;i++){
			int fd = events[i].data.fd;
			if(fd == sockfd) ServerProcess();
			else if(fd == STDIN_FILENO) StdinProcess();
			else ClientProcess(fd);
		}
	}
}
예제 #3
0
파일: servernew.c 프로젝트: shrinetang/ddbm
int AllocateTask(int thread_no)
{
    while(1)
    {
        sem_wait(&pSems[thread_no]); 
        debug_print(("allocating a event!\n"));
        pthread_mutex_lock(&mutex);
        tQueueNode * ptask = NULL;
        ptask = OutQueue(p);
        pthread_mutex_unlock(&mutex);
        ServerProcess(ptask->sockfd,ptask->pBuf);
        debug_print(("ServerProcess finish\n"));
        free(ptask);
    }
}
예제 #4
0
파일: owhttpd.c 프로젝트: M-o-a-T/owfs
int main(int argc, char *argv[])
{
	int c;

	/* Set up owlib */
	LibSetup(program_type_httpd);
	Setup_Systemd() ; // systemd?
	Setup_Launchd() ; // launchd?

	/* grab our executable name */
	ArgCopy( argc, argv ) ;

	while ((c = getopt_long(argc, argv, OWLIB_OPT, owopts_long, NULL)) != -1) {
		switch (c) {
		case 'V':
			fprintf(stderr, "%s version:\n\t" VERSION "\n", argv[0]);
			break;
		default:
			break;
		}
		if ( BAD( owopt(c, optarg) ) ) {
			ow_exit(0);			/* rest of message */
		}
	}

	/* non-option arguments */
	while (optind < argc) {
		ARG_Generic(argv[optind]);
		++optind;
	}

	switch (Globals.daemon_status) {
		case e_daemon_sd:
		case e_daemon_sd_done:
			// systemd done later
			break ;
		default:
			if (Outbound_Control.active == 0) {
				if (Globals.zero == zero_none) {
					LEVEL_DEFAULT("%s would be \"locked in\" so will quit.\nBonjour and Avahi not available.", argv[0]);
					ow_exit(1);
				} else {
					LEVEL_CONNECT("%s will use an ephemeral port", argv[0]) ;
				}
				ARG_Server(NULL);		// make an ephemeral assignment
			}
			break ;
	}

	/* become a daemon if not told otherwise */
	if ( BAD(EnterBackground()) ) {
		ow_exit(1);
	}

	/* Set up adapters and systemd */
	if ( BAD(LibStart(NULL)) ) {
		ow_exit(1);
	}

	set_exit_signal_handlers(exit_handler);
	set_signal_handlers(NULL);

	ServerProcess(Acceptor);

	LEVEL_DEBUG("ServerProcess done");
	ow_exit(0);
	LEVEL_DEBUG("owhttpd done");
	return 0;
}