我正在尝试创建一个示例RPC程序以了解有关它的更多信息。在我开始进一步干预之前,它所做的只是承认我手头有一个有效的RPC程序。在提到我的问题之前,这是我的代码,非常简单:
/* 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);
}
我的问题是,我得到输出:“失败”,表示我无法创建客户端。我使用ubuntu / linux作为我的平台并使用C作为我的编程语言。在构建项目时我没有遇到任何问题。
提前感谢您的时间。
答案 0 :(得分:0)
在问题界线:
clnt = clnt_create(server, MESSAGEPROG, EVALMESSAGEVERS, "visible");
将最后一个参数更改为“udp”对我有用。
clnt = clnt_create(server, MESSAGEPROG, EVALMESSAGEVERS, "udp");