📄 math_client.c
字号:
/*filename: math_client.c*/
#include "xdr_math.h"
void usage(char *name)
{
printf("Usage: %s hostname/IPaddr\n",name);
exit (1);
}
int main(int argc,char **argv)
{
struct MATH math;
struct timeval timeout;
CLIENT *client;
enum clnt_stat stat;
char c;
if (argc!=2)
usage(argv[0]);
printf("choose the operate:\n\t0---ADD\n\t1---SUB\n\t2---MUL\n\t3---DIV\n");
c=getchar();
switch ( c )
{
case '0':
math.op=ADD;
break;
case '1':
math.op=SUB;
break;
case '2':
math.op=MUL;
break;
case '3':
math.op=DIV;
break;
default :
printf("error :operate\n");
exit(1);
}
printf("Input the first number: ");
scanf("%f",&math.arg1);
printf("Input the second number: ");
scanf("%f",&math.arg2);
client=clnt_create(argv[1],MATH_PROG,MATH_VER,"tcp");
if (client==NULL)
{
clnt_pcreateerror("error: create client\n");
exit(1);
}
timeout.tv_sec=30;
timeout.tv_usec=0;
stat=clnt_call(client,MATH_PROC,(xdrproc_t)xdr_math,(caddr_t)&math,(xdrproc_t)xdr_math,(caddr_t)&math,timeout);
if (stat!=RPC_SUCCESS)
{
clnt_perror(client,"Call Failed");
exit(1);
}
printf("The Result is %.3f \n",math.result);
exit(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -