/*An application program on the client side,it access functions
sum and product as if they were local. */
#include <stdio.h>
#include "service.h"
char dispatcher[100]; /*to contain the ip address of dispatcher*/
int port; /*to contain the port number of dispatcher*/
int main(int argc, char **argv)
{
int status=0;
int a,b,c;
int func;
char op[10];
char garbage[30]; /*just used for format.*/
if(argc<3)
{
fprintf(stderr,"Wrong command line arguements!\n");
exit(-1);
}
strcpy(dispatcher,argv[1]);/*get the ip address of disptcher*/
port=atoi(argv[2]);/*get the port number of dispatcher.*/
/*a user friendly interface.*/
while(1)
{
printf("\nPlease select the function:\n");
printf("0.sum\t1.product\n");
func=getchar(); /*read the function selected from stdin*/
fgets(garbage,sizeof(garbage),stdin); /*just for format*/
/*if user press any chars other than '0' or '1'*/
if(func!='0'&&func!='1')
{
printf("Invalid option, select again\n");
continue;
}
printf("Please input the operand:\n");
printf("a = ");
scanf("%d",&a);
fflush(stdout);
printf("b = ");
scanf("%d",&b);
fflush(stdout);
/*the case sum function is selected.*/
if(func=='0')
{
status=sum(a,b,&c);
strcpy(op,"+");
break;
}
/*the case product operation is selected*/
else if(func=='1')
{
status=product(a,b,&c);
strcpy(op,"*");
break;
}
printf("\n");
}
/*if nothing wrong happened.*/
if(status==0)
printf("\n%d %s %d = %d \n\n",a,op,b, c);
return 0;
}