コード例 #1
0
ファイル: server.cpp プロジェクト: mathlover777/NetworksLab
int main(){
	system("reset");
	resetServer();
	commandInterpreter();
	printf("\n");
	return 0;
}
コード例 #2
0
ファイル: SimpleServer.cpp プロジェクト: Lukepahill/Lab-Code
int _tmain(int argc, _TCHAR* argv[])
{
    // Create a NatNet server
    int iConnectionType = ConnectionType_Multicast;
    //int iConnectionType = ConnectionType_Unicast;
    int iResult = CreateServer(iConnectionType);
    if(iResult != ErrorCode_OK)
    {
        printf("Error initializing server.  See log for details.  Exiting");
        return 1;
    }

    // Create a MarkerSet description
    BuildDescription(&descriptions);

    // OK! Ready to stream data.  Listen for request from clients (RequestHandler())
	printf("\n\nCommands:\nn\tnext frame\ns\tstream frames\nr\treset server\nq\tquit\n\r\tmulticast\nu\tunicast\n\n");
	bool bExit = false;
	while(int c =_getch())
	{
		switch(c)
		{
			case 'n':							// next frame
                {
				sFrameOfMocapData frame;
				BuildFrame(g_lCurrentFrame++, &descriptions, &frame);
				SendFrame(&frame);
				FreeFrame(&frame);
                }
				break;
			case 'q':                           // quit
				bExit = true;		
				break;
            case 's':							// play continuously
                g_lCurrentFrame = 0;
                if(g_bPlaying)
                    StopPlayingThread();
                else
                    StartPlayingThread();
                break;
            case 'r':	                        // reset server
                resetServer();
                break;
            case 'm':	                        // change to multicast
                iResult = CreateServer(ConnectionType_Multicast);
                if(iResult == ErrorCode_OK)
                    printf("Server connection type changed to Multicast.\n\n");
                else
                    printf("Error changing server connection type to Multicast.\n\n");
                break;
            case 'u':	                        // change to unicast
                iResult = CreateServer(ConnectionType_Unicast);
                if(iResult == ErrorCode_OK)
                    printf("Server connection type changed to Unicast.\n\n");
                else
                    printf("Error changing server connection type to Unicast.\n\n");
                break;

			default:
				break;
		}

		if(bExit)
		{
			theServer->Uninitialize();
			FreeDescription(&descriptions);
			break;
		}
	}

	return ErrorCode_OK;
}
コード例 #3
0
ファイル: client.c プロジェクト: jschwartzenberg/kicker
void
sessionExit( int status )
{
	int pid;
#ifdef USE_PAM
	int pretc;
#endif

	if (removeAuth) {
		switch (source( systemEnviron, td->reset, td_setup )) {
		case 0:
		case wcCompose( 0, 0, 127 ):
			break;
		default:
			logError( "Reset script returned non-zero exit code\n" );
			break;
		}
		sessreg( td, 0, 0, 0 );

		switch (Fork( &pid )) {
		case 0:
#if defined(USE_PAM) && defined(HAVE_INITGROUPS)
			if (restoreGids() && setUid( curuser, curuid ))
#else
			if (setUser( curuser, curuid, curgid ))
#endif

			{
				removeUserAuthorization( td );
#ifdef K5AUTH
				krb5Destroy( td->name );
#endif /* K5AUTH */
#if !defined(USE_PAM) && !defined(_AIX)
# ifdef KERBEROS
				if (krbtkfile[0]) {
					(void)dest_tkt();
#  ifdef AFS
					if (k_hasafs())
						(void)k_unlog();
#  endif
				}
# endif
#endif /* !USE_PAM && !_AIX*/
			}
			exit( 0 );
		case -1:
			logError( "Cannot clean up session: fork() failed: %m" );
			break;
		default:
			Wait4( &pid );
			break;
		}
	}

#ifdef USE_PAM
	if (removeCreds) {
# ifdef HAVE_INITGROUPS
		restoreGids();
# endif
		if (removeSession) {
			pretc = pam_close_session( pamh, 0 );
			reInitErrorLog();
			if (pretc != PAM_SUCCESS)
				logError( "pam_close_session() failed: %s\n",
				          pam_strerror( pamh, pretc ) );
		}
		pretc = pam_setcred( pamh, PAM_DELETE_CRED );
		reInitErrorLog();
		if (pretc != PAM_SUCCESS)
			logError( "pam_setcred(DELETE_CRED) failed: %s\n",
			          pam_strerror( pamh, pretc ) );
		resetGids();
	}
	if (pamh) {
		pam_end( pamh, PAM_SUCCESS );
		reInitErrorLog();
	}
#endif

	finishGreet();

	/* make sure the server gets reset after the session is over */
	if (td->serverPid >= 2) {
		if (!td->terminateServer && td->resetSignal)
			terminateProcess( td->serverPid, td->resetSignal );
	} else
		resetServer( td );
	debug( "display %s exiting with status %d\n", td->name, status );
	exit( status );
}