Exemple #1
0
void divide_test(unsigned long x, unsigned long y) {
	printf("divide(%lu, %lu) = %lu; %lu/%lu = %lu;\n", x, y, divide(x, y), x, y, x/y);
	printf("divide_1(%lu, %lu) = %lu; %lu/%lu = %lu;\n", x, y, divide_1(x, y), x, y, x/y);
}
void
ejercicio1_1(char *host, param arg1, char *op)
{
	CLIENT *clnt;
	int  *result;

#ifndef	DEBUG
	clnt = clnt_create (host, EJERCICIO1, EJERVER, "udp");
	if (clnt == NULL) {
		clnt_pcreateerror (host);
		exit (1);
	}
#endif	/* DEBUG */

	switch(*op) {
		case '+':
			result = suma_1(arg1, clnt);
			if (result == (int *) NULL) {
				clnt_perror (clnt, "call failed");
			}
			else
				printf("El resultado de la suma es: %d \n", *result);

			break;

		case '-':
			result = resta_1(arg1, clnt);
			if (result == (int *) NULL) {
				clnt_perror (clnt, "call failed");
			}
			else
				printf("El resultado de la resta es: %d \n", *result);

			break;
		
		case 'x':
			result = multiplica_1(arg1, clnt);
			if (result == (int *) NULL) {
				clnt_perror (clnt, "call failed");
			}
			else
				printf("El resultado de la multiplicacion es: %d \n", *result);
			
			break;
	
		case '/':		
			result = divide_1(arg1, clnt);
			if (result == (int *) NULL) {
				clnt_perror (clnt, "call failed");
			}
			else
				printf("El resultado de la division es: %d \n", *result);

			break;

		default:
			break;
	}

#ifndef	DEBUG
	clnt_destroy (clnt);
#endif	 /* DEBUG */
}
Exemple #3
0
void main(int argc, char *argv[]) {
	CLIENT *cliente;
	int *return_value;
	float *f_return_value;
	char *servidor;

	if (argc < 5){
		fprintf(stderr,
				"Usage:\n%s <server> <operation> <number 1> <number 2>\n",
				argv[0]);
		fprintf(stderr, "Example:\n%s localhost add 2 5\n", argv[0]);
		exit (1);
	}
	
	servidor = argv[1];

	// Generating handle to call server.
	if ((cliente=clnt_create(servidor, CALCULATOR, CALCULATORVERS, "tcp"))
			== (CLIENT *) NULL) {
		clnt_pcreateerror(servidor);
		exit(2);
	}
	
	if (strcmp(argv[2], "add") == 0) {

		return_value = add_1(atoi(argv[3]), atoi(argv[4]), cliente);
		if (! *return_value) {
			fprintf(stderr, "error: couldn't add\n");
			exit(1);
		}
		else{
			printf("Return value = %d\n", *return_value);
		}
		exit(0);
		
	}
	else if (strcmp(argv[2], "sub") == 0) {

		return_value = sub_1(atoi(argv[3]), atoi(argv[4]), cliente);
		if (! *return_value) {
			fprintf(stderr, "error: couldn't sub\n");
			exit(1);
		}
		else{
			printf("Return value = %d\n", *return_value);
		}
		exit(0);
		
	}
	else if (strcmp(argv[2], "times") == 0) {

		return_value = times_1(atoi(argv[3]), atoi(argv[4]), cliente);
		if (! *return_value) {
			fprintf(stderr, "error: couldn't times\n");
			exit(1);
		}
		else{
			printf("Return value = %d\n", *return_value);
		}
		exit(0);
		
	}
	else if (strcmp(argv[2], "divide") == 0) {

		f_return_value = divide_1(atoi(argv[3]), atoi(argv[4]), cliente);
		if (! *f_return_value) {
			fprintf(stderr, "error: couldn't divide\n");
			exit(1);
		}
		else{
			printf("Return value = %.3f\n", *f_return_value);
		}
		exit(0);
		
	}
	else{
		fprintf(stderr, "Avaiable operations: add, sub, times, divide\n");
	}

	clnt_destroy(cliente);
}