使用C语言介绍RPCGEN-无法创建客户端
我正在尝试创建一个示例RPC程序来了解更多信息。它所做的只是承认我手头有一个正在工作的RPC程序,然后才开始进一步干预它。在提到我的问题之前,这里是我的代码,它非常简单:使用C语言介绍RPCGEN-无法创建客户端,c,rpc,C,Rpc,我正在尝试创建一个示例RPC程序来了解更多信息。它所做的只是承认我手头有一个正在工作的RPC程序,然后才开始进一步干预它。在提到我的问题之前,这里是我的代码,它非常简单: /* myrpc.x file*/ program MESSAGEPROG { version EVALMESSAGEVERS { int EVALMESSAGE(string) = 1; } = 1; } = 0x20000002; 远程方法如下所示: /* Remote method on a .c
/* myrpc.x file*/
program MESSAGEPROG {
version EVALMESSAGEVERS {
int EVALMESSAGE(string) = 1;
} = 1;
} = 0x20000002;
远程方法如下所示:
/* Remote method on a .c file */
#include <stdio.h>
#include "myrpc.h"
int * evalmessage_1_svc(char **msg, struct svc_req *req)
{
static int result = 0;
printf("Message is: %s,\n",*msg);
return (&result);
}
#include <stdio.h>
#include "myrpc.h"
main(int argc, char **argv)
{
CLIENT * clnt;
char * server;
char * msg;
server = argv[1];
msg = argv[2];
clnt = clnt_create(server, MESSAGEPROG, EVALMESSAGEVERS, "visible");
if (clnt == (CLIENT *)NULL) { printf("Failure\n"); }
int * answer;
answer = evalmessage_1(&msg,clnt);
clnt_destroy(clnt);
exit(0);
.c文件上的远程方法*/
#包括
#包括“myrpc.h”
int*evalmessage_1_svc(字符**msg,结构svc_req*req)
{
静态int结果=0;
printf(“消息为:%s\n”,*msg);
返回(&结果);
}
最后,测试文件如下所示:
/* Remote method on a .c file */
#include <stdio.h>
#include "myrpc.h"
int * evalmessage_1_svc(char **msg, struct svc_req *req)
{
static int result = 0;
printf("Message is: %s,\n",*msg);
return (&result);
}
#include <stdio.h>
#include "myrpc.h"
main(int argc, char **argv)
{
CLIENT * clnt;
char * server;
char * msg;
server = argv[1];
msg = argv[2];
clnt = clnt_create(server, MESSAGEPROG, EVALMESSAGEVERS, "visible");
if (clnt == (CLIENT *)NULL) { printf("Failure\n"); }
int * answer;
answer = evalmessage_1(&msg,clnt);
clnt_destroy(clnt);
exit(0);
#包括
#包括“myrpc.h”
主(内部argc,字符**argv)
{
客户*clnt;
字符*服务器;
char*msg;
服务器=argv[1];
msg=argv[2];
clnt=clnt_create(服务器、MESSAGEPROG、EVALMESSAGEVERS,“可见”);
if(clnt==(CLIENT*)NULL){printf(“Failure\n”);}
int*答案;
答案=评估信息1(&msg,clnt);
clnt_销毁(clnt);
出口(0);
}
我的问题是,我得到的输出是:“Failure”,这表示我无法创建客户端。我使用ubuntu/linux作为我的平台,使用C作为我的编程语言。我在建立项目时没有遇到问题
提前感谢您的时间。在问题行:
clnt = clnt_create(server, MESSAGEPROG, EVALMESSAGEVERS, "visible");
将最后一个参数更改为“udp”对我来说很有效
clnt = clnt_create(server, MESSAGEPROG, EVALMESSAGEVERS, "udp");