Exemplo n.º 1
0
int main(int argc, char *argv[])
{
  int rank;
  int nproc;
  FILE *input;

  MPI_Init(&argc,&argv);
  MPI_Comm_rank(MPI_COMM_WORLD,&rank);
  MPI_Comm_size(MPI_COMM_WORLD,&nproc);
  if ( nproc<2 && rank==0 )
    {
      fprintf(stderr,"%s:  At least 2 MPI processes required!\n",argv[0]);
      exit(-1);
    }
  if ( rank==0 )
    {
      if ( argc>1 )
	{
	  input = fopen(argv[1],"r");
	}
      else
	{
	  input = stdin;
	}
      mastermind(nproc-1,input);
    }
  else
    {
      minion(rank);
    }
  MPI_Finalize();
  return(0);
}
Exemplo n.º 2
0
int main(int argc, char *argv[])
{
	int sd;
	struct sockaddr_in adresse; /* Internet-Adress-Struktur */
	u_short port = 12345;
	struct hostent *server; /* Zeiger für Server-Informationn */
	char *servername;
	int rc;
	int optchar;

	opterr = 0;
	while(optchar = getopt(argc, argv, "p:"), optchar != -1) {
		switch(optchar) {
			case 'p': /* Portnummer setzen */
				rc = sscanf(optarg, "%hu", &port);
				if (rc != 1)
					usage(argv[0]);
				break;
			default:
				usage(argv[0]);
		}
	}
	if (optind >= argc) {
		fprintf(stderr, "Hostname bitte übergeben\n");
		exit(1);
	}
	servername = argv[optind];

	sd = socket(AF_INET, SOCK_STREAM, 0);
	if (sd < 0) {
		perror("socket");
		exit(1);
	}
	printf("Server: %s\n", servername);
	printf("Port  : %hu\n", port);
	printf("=======\n\n");

	/* Adress-Struktur belegen */
	memset(&adresse, 0, sizeof(adresse));
	adresse.sin_family = AF_INET;
	adresse.sin_port = htons(port);
	server = gethostbyname(servername);

	if (server == NULL) {
		perror(servername);
		exit(2);
	}
	adresse.sin_addr = *(struct in_addr *) server->h_addr;

	if (connect(sd, (struct sockaddr *)&adresse, sizeof(adresse)) < 0) {
		perror("connect");
		exit(1);
	}

	mastermind(sd);

	close(sd);
	return 0;
}
Exemplo n.º 3
0
/*------------------------------------------------------------------------------------*/
int main(int argc, char *argv[])
{
	struct sockaddr_in adresse;	/* Internet-Adress-Struktur */
	u_short port = 12345;	/* Default Serverportnr.: 12345 */
	struct hostent *server; /* Zeiger für Server-Informationn */
	char *servername;
	int rc;
	int optchar;

	/* Was soll passieren wenn SIGINT eintrifft? */
	if (signal(SIGINT, abfangen) == SIG_ERR) {
		perror("SIGINT");
		ende(-1);
	}

	if (signal(SIGQUIT, SIG_IGN) == SIG_ERR) {
		perror("SIGQUIT");
		ende(-1);
	}
	if (signal(SIGPIPE, ende) == SIG_ERR) {
		perror("SIGPIPE");
		ende(-1);
	}

	opterr = 0;
	while(optchar = getopt(argc, argv, "p:"), optchar != -1) {
		switch(optchar) {
			case 'p': /* Portnummer setzen */
				rc = sscanf(optarg, "%hu", &port);
				if (rc != 1)
					usage(argv[0]);
				break;
			default:
				usage(argv[0]);
		}
	}
	if (optind >= argc) {
		fprintf(stderr, "Hostname bitte übergeben\n");
		perror("Hostname");
		usage(argv[0]);
	}
	servername = argv[optind];

	sd = socket(AF_INET, SOCK_STREAM, 0);
	if (sd < 0) {
		perror("socket");
		ende(-1);
	}
	printf("Server: %s\n", servername);
	printf("Port  : %hu\n", port);
	printf("=======\n");

	/* Adress-Struktur belegen */
	memset(&adresse, 0, sizeof(adresse));
	adresse.sin_family = AF_INET;
	adresse.sin_port = htons(port);
	server = gethostbyname(servername);

	if (server == NULL) {
		perror(servername);
		ende(-1);
	}
	adresse.sin_addr = *(struct in_addr *) server->h_addr;

	if (connect(sd, (struct sockaddr *)&adresse, sizeof(adresse)) < 0) {
		perror("connect");
		usage(argv[0]);
		ende(-1);
	}

	/* starten des Spiels Mastermind */
	mastermind(sd);

	/* nach Spielende Socket schließen */
	close(sd);

	/* Main-Funktion Ende */
	printf("Spielende\n");
	return 0;

}
Exemplo n.º 4
0
void shell(){
	char c;
	char buffer[MAX_CMD_SIZE+1];
	char last_cmd[CMD_MEMORY][MAX_CMD_SIZE+1];
	int i,mem;
	char shell_color=0x09;
	char user_color=0x07;
	
	for(mem=0;mem<CMD_MEMORY;mem++){
		last_cmd[mem][0]=0;
	}													
	while(1){
		__setcolor(&shell_color);
		printf("Shell->: ");
		__setcolor(&user_color);
		i=0;
		mem=-1;
		do{
			c=getchar();
			if(c=='\b'){
				if(i>0){
					i--;
					putchar(c);
				}
			}
			else if(c=='\x11'){
				/*UP*/
				if(mem<CMD_MEMORY-1){
					mem++;
					int j;
					for(j=0;j<i;j++){
						putchar('\b');
					}
					i=strlen(last_cmd[mem]);
					strcpy(buffer,last_cmd[mem]);
					printf("%s",buffer);
				}
			}
			else if(c=='\x13'){
				/*DOWN*/
				if(mem>0){
					mem--;
					int j;
					for(j=0;j<i;j++){
						putchar('\b');
					}
					i=strlen(last_cmd[mem]);
					strcpy(buffer,last_cmd[mem]);
					printf("%s",buffer);
				}
			}
			else if(c=='\x12'){
				//do nothing
			}
			else{
				if(i<MAX_CMD_SIZE||c=='\n'){
				  putchar(c);
				  buffer[i]=c;
				  i++;
				}
			}
		}while(c!='\n');
		buffer[i-1]=0;
		/*GUARDAR COMANDOS ANTERIORES*/
		int k;
		for(k=CMD_MEMORY-2;k>=0;k--){
			strcpy(last_cmd[k+1],last_cmd[k]);
		}
		strcpy(last_cmd[0],buffer);
		
		
		if(strlen(buffer)==0){
			/*VACIO*/
		}
		else if(strcmp("who",buffer)==0){
			printf("\n************\nF Alderete\nF Ramundo\nC Mader Blanco\n************\n\n");
		}
		else if(substr("echo ", buffer)){
			printf("%s\n",buffer+5);
		}
		else if(substr("color ", buffer)){
		  char tmp=color(buffer+6);
		  if(tmp==0){
		    printf("Invalid color name\n");
		  }
		  else{
		    user_color=tmp;
		  }
		}
		else if(strcmp("time",buffer)==0){
			int m, h;
			m=getmin();
			h=gethour();
			if(m<10){
				printf("%d:0%d\n",h,m);
			}else{
				printf("%d:%d\n",h,m);
			}
		}	
		else if(substr("keyboard ", buffer)){
			if(strcmp("ESP", buffer+9)==0){
				set_scancode(1);
			}else if(strcmp("ENG", buffer+9)==0){
				set_scancode(2);
			}else{
				printf("Unsuported layout\n");
			}
		}
		else if(substr("speak ", buffer)){
			speak(buffer+6);
		}
		else if(strcmp("memstat", buffer)==0){
			print_memory();
		}
		else if(substr("memalloc ", buffer)){
			i=atoi(buffer+9);
			if(malloc(i)!=0){
				printf("Memory allocated\n");
			}else{
				printf("Not enough memory\n");
			}
		}
		else if(substr("memcalloc ", buffer)){
			i=atoi(buffer+10);
			if(calloc(i)!=0){
				printf("Memory allocated\n");
			}else{
				printf("Not enough memory\n");
			}
		}
		else if(substr("pageprint ", buffer)){
			i=atoi(buffer+10);
			if(pageprint(i)==0){
				printf("Invalid argument");
			}
		}
		else if(substr("memfree ", buffer)){
			i=atoi(buffer+8);
			if(free((void*)((i+530)*4096))){
				printf("Memory freed\n");
			}
			else{
				printf("Invalid argument\n");
			}
		}
		else if(strcmp("lostquote", buffer)==0){
			printf("%s", get_quote());
		}
		else if(strcmp("mastersword", buffer)==0){
			print_zelda();
		}
		else if(strcmp("mario", buffer)==0){
			print_mario();
		}
		else if(strcmp("help", buffer)==0){
			help();
		}
		else if(strcmp("mastermind",buffer)==0){
			mastermind();
		}
		else{
			printf("Command not found\n");
		}
		
	}
}