int main(){ printf("Lcd driver and lib demo\n"); display = get_display(); if (display == NULL) { printf("Failed to get display\n"); return -1; } disable_waiting_for_enter(); build_vars(); intro_animation(); char key = 0; int position = 0; while(running){ position = menu_selection(position); } clear_screen(); restore_terminal_settings(); release_display(display); }
int main(int argc, char *argv[]) { struct sockaddr_in echoserver; char buffer[BUFSIZ]; unsigned int echolen; int received = 0, c, sock,sock2; int ch; int enableArrow =0; disable_waiting_for_enter(); bool sendable; if(argc < 3) usage(*argv); while((c=getopt(argc, argv, "l:r:i:h")) != -1){ switch(c){ case 'L': case 'l': if((Log = fopen(optarg, "w")) == NULL) errx(EXIT_FAILURE, "fopen():", strerror(errno)); loggable = true; fprintf(Log,"+------------------------------+\n"); fprintf(Log,"\t CLIENT LOG\n"); fprintf(Log,"+------------------------------+\n"); break; case 'I': case 'i': server_ip = optarg; break; case 'R': case 'r': if((Cmd = fopen(optarg, "r")) == NULL) errx(EXIT_FAILURE, "fopen():", strerror(errno)); read_cmd = true; break; case 'h': default: usage(*argv); break; } } /* Create the TCP socket */ if ((sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) errx(EXIT_FAILURE, "socket():", strerror(errno)); printf("%s","ready to Server Launcher\n"); /* Construct the server sockaddr_in structure */ memset(&echoserver, 0, sizeof(echoserver)); /* Clear struct */ echoserver.sin_family = AF_INET; /* Internet/IP */ echoserver.sin_addr.s_addr = inet_addr(server_ip); /* IP address */ echoserver.sin_port = htons(DEFAULT_PORT); /* game launch port */ /* Establish connection */ if (connect(sock, (struct sockaddr *) &echoserver, sizeof(echoserver)) < 0) errx(EXIT_FAILURE, "connect():1", strerror(errno)); printf("%s","Connected to Server Launcher\n"); char portBuffer[BUFSIZ]; int status; if((status = recv(sock, portBuffer, BUFSIZ, 0)) < 0) errx(EXIT_FAILURE, "connect():", strerror(errno)); close(sock); printf("%s","Ready to Model\n"); /* Create the TCP socket */ if ((sock2 = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) errx(EXIT_FAILURE, "socket():", strerror(errno)); /* Construct the server sockaddr_in structure */ memset(&echoserver, 0, sizeof(echoserver)); /* Clear struct */ echoserver.sin_family = AF_INET; /* Internet/IP */ echoserver.sin_addr.s_addr = inet_addr(server_ip); /* IP address */ echoserver.sin_port = htons((short)atoi(portBuffer)); /* server port */ puts(portBuffer); pid = fork(); if (pid == 0){ view_port= 2029+atoi(portBuffer) - 1029; sprintf(sysc_call, "./View %d",view_port); system(sysc_call); } printf("%d \n",view_port); sleep(5); if (connect(sock2, (struct sockaddr *) &echoserver, sizeof(echoserver)) < 0) errx(EXIT_FAILURE, "connect():2", strerror(errno)); printf("%s","Connected to Model"); /* determine whether we read from file or stdin */ FILE *stream; stream = read_cmd ? Cmd : stdin; if(stream == stdin){ //commandline mode while(strcmp(buffer, "EXIT")){ memset(buffer, 0, sizeof(buffer)); //fgets(buffer,BUFSIZ,stdin); ch = getchar(); if(strlen(buffer) > 0) buffer[strlen(buffer)-1] = '\0'; //no newline /*strupr(buffer); echolen = strlen(buffer); //write data to game server */ if(ch == arrow_step_one){ enableArrow++; } else if(ch == arrow_step_two && enableArrow==1){ enableArrow++; } else if(ch == arrow_left && enableArrow==2){ strcpy(buffer,"LEFT"); printf(">>%s\n",buffer); echolen = strlen(buffer); enableArrow =0; sendable= true; } else if(ch == arrow_right && enableArrow==2){ strcpy(buffer,"RIGHT"); printf(">>%s\n",buffer); echolen = strlen(buffer); enableArrow =0; sendable= true; } else enableArrow =0; if(ch == start){ strcpy(buffer,"START"); printf(">>%s\n",buffer); echolen = strlen(buffer); sendable= true; } if(ch == add){ strcpy(buffer,"ADD"); printf(">>%s\n",buffer); echolen = strlen(buffer); sendable= true; } if(ch == exit_game){ strcpy(buffer,"EXIT"); printf(">>%s\n",buffer); echolen = strlen(buffer); sendable= true; } if(sendable){ if(send(sock2, buffer, echolen, 0) != echolen) errx(EXIT_FAILURE, "send():", strerror(errno)); if(loggable){ struct tm *timeinfo; time_t curr_time; time(&curr_time); timeinfo = localtime(&curr_time); fprintf(Log,"*------------------------------*\n"); fprintf(Log, "%% %s", asctime(timeinfo)); fprintf(Log, " To: %s\n", server_ip); fprintf(Log, " Command: %s\n", buffer); fprintf(Log,"*------------------------------*\n\n"); } } sendable = false; } } //read from file else { parse_file(sock); } /* cleanup */ close(sock); fprintf(stdout, "\nSockets closed and resources deallocated\n"); fprintf(stdout, "Exiting ...\n"); exit(0); }