PA_THREAD_RETTYPE __STDCALL commandHandleThread(void *p) { HP2PMPLX hP2pMplx = (HP2PMPLX)p; MYSESSDATA *pSessData; pSessData = P2pMplxGetUserData(hP2pMplx); while(pSessData->bRunCmd) { int err; CMDPKTINFO pkt; switch( (err = P2pMplxRecvPacket(hP2pMplx, 0, &pkt, 1000)) ) { case 0: commandHandler(hP2pMplx, &pkt); P2pMplxReleasePacket(hP2pMplx, 0, &pkt); break; case P2PE_TIMEOUTED: break; case P2PE_CONN_ABORTED: case P2PE_CONN_TIMEOUTED: fprintf(stderr, "session %d aborted due to: %s\n", pSessData->iSlot, err == P2PE_CONN_ABORTED?"abort":"timeout"); removeSessInSlots(hP2pMplx); _cleanSessData(hP2pMplx); P2pMplxDestroy(hP2pMplx); break; default: printf("connect %d receive packet failed with error: %d\n", pSessData->iSlot, err); } } return (PA_THREAD_RETTYPE)0; }
int main(int argc, char *argv[]) { /* Socket Setup */ // default socket number int socketNumber = 5000; // Init the GPIO wiringPiSetup(); pinMode(0, OUTPUT); pinMode(1, OUTPUT); testEncrypt(); return 1; if (argc > 1){ socketNumber = atoi(argv[1]); } // Set up socket first struct sockaddr_in serv_addr; signal(SIGINT, intHandler); listenfd = socket(AF_INET, SOCK_STREAM, 0); memset(&serv_addr, '0', sizeof(serv_addr)); serv_addr.sin_family = AF_INET; serv_addr.sin_addr.s_addr = htonl(INADDR_ANY); serv_addr.sin_port = htons(socketNumber); bind(listenfd, (struct sockaddr*)&serv_addr, sizeof(serv_addr)); listen(listenfd, 10); sessionfd = accept(listenfd, (struct sockaddr*)NULL, NULL); /* End of Socket Setup */ /* OpenSSL setup */ ERR_load_crypto_strings(); OpenSSL_add_all_algorithms(); OPENSSL_config(NULL); /* End of OpenSSL setup */ commandHandler(sessionfd); // Destructor for socket close(listenfd); }
void TTRClientThread::run() { while (!quit){ if (connected) { String buffer = (String)""; buffer = receive(); if (buffer == "") { connected = false; onDisconnect(); } else commandHandler(buffer); } else { if (!connect()) Thread::sleep(100); } } }
/** Procedure: main Purpose: Initiates MPX OS Parameters: None Return value: None Calls: sys_init, commandHandler Globals: None Errors: None **/ void main(){ sys_init(MODULE_R2 + MODULE_R1); //1. Initialize commandHandler(); //2. Call commandHandler function }//end main