- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 rpcgen 包将字符串作为结构的一部分通过网络传递。这是我的 IDL 代码:
struct param
{
char* name;
int voterid;
};
program VOTECLIENT_PROG
{
version VOTECLIENT_VERS
{
string ZEROIZE() = 1;
string ADDVOTER(int) = 2;
string VOTEFOR(param) = 3;
string LISTCANDIDATES() = 4;
int VOTECOUNT(string) = 5;
} = 1;
} = 0x2345111;
不知何故,字符串在服务器上被截断为单个字符。例如,如果我传递 name = "abc",我会在服务器上得到 "a"。看起来这是由于 stub 内部的某些问题而发生的,但我似乎无法弄清楚错误在哪里。
将字符串作为参数传递的函数的客户端代码:
void
voteclient_prog_1(char *host, char* c, int id)
{
CLIENT *clnt;
char * *result_3;
param votefor_1_arg;
#ifndef DEBUG
clnt = clnt_create (host, VOTECLIENT_PROG, VOTECLIENT_VERS, "udp");
if (clnt == NULL) {
clnt_pcreateerror (host);
exit (1);
}
#endif /* DEBUG */
votefor_1_arg.name = c;
votefor_1_arg.voterid = id;
result_3 = votefor_1(&votefor_1_arg, clnt);
if (result_3 == (char **) NULL) {
clnt_perror (clnt, "call failed");
}
clnt_perror (clnt, "call failed");
#ifndef DEBUG
clnt_destroy (clnt);
#endif /* DEBUG */
}
int
main (int argc, char *argv[])
{
char *host;
int id;
char* c = new char[20];
if (argc < 4) {
printf ("usage: %s server_host name voterid\n", argv[0]);
exit (1);
}
host = argv[1];
c = argv[2];
id = atoi(argv[3]);
voteclient_prog_1 (host, c, id);
exit (0);
}
任何帮助将不胜感激。
最佳答案
来自 rpcgen Programming Guide , 6.9.特殊情况:
Strings: C has no built-in string type, but instead uses thenull-terminated “char *” convention. In XDR language, strings aredeclared using the “string” keyword, and compiled into “char *”s inthe output header file. The maximum size contained in the anglebrackets specifies the maximum number of characters allowed in thestrings (not counting the NULL character). The maximum size may beleft off, indicating a string of arbitrary length.
Examples:
string name<32>; --> char *name;
string longname<>; --> char *longname;
所以,你应该声明name
像上面一样,e。 G。 string name<20>;
.
关于c++ - rpcgen-在结构中传递字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22600634/
我正在尝试使用 rpcgen 包将字符串作为结构的一部分通过网络传递。这是我的 IDL 代码: struct param { char* name; int voterid; };
我正在阅读 Oracle 网站上的 RPCgen 教程 http://docs.oracle.com/cd/E19683-01/816-1435/6m7rrfn7f/index.html , 但不理解
我正在尝试将字符指针从 rpc 客户端发送到 rpcgen 中的服务器,下面是服务器和客户端程序 RPC gen 的 RPC 程序 struct clientinput { char * op
我们使用rpcgen在Linux机器上创建了一个rpc服务器(c语言)。当我们的程序有很多调用时,它仍然会产生一个线程请求。我发现这是 2004 年的常见问题,有一个新的 rpcgen (或其他生成器
我是 C 语言编程的新手。我尝试创建一个小而简单的程序来将文件 calculs.x 中的两个整数相加 这里是calculs.x文件的内容 /* calculs.x*/ struct data_in {
我是这样理解的: .x 文件定义了服务器和客户端共享的接口(interface)和参数。当您使用 rpcgen 编译它时,它会生成 .h、_xdr.c、_clnt.c 和 _svc.c。 _clnt.
我正在尝试使用 RPCGen 来了解 RPC 的基础知识。我按照基本教程编写了以下 myrpc.x 文件 program MESSAGEPROG { version EVALMESSAGEVE
我正在使用 rpcgen 库创建一个应用程序,我必须在服务器端使用 HashMap 。将 STL 库(或任何 C++ 代码)与 rpcgen 一起使用是否可取?我试过用 g++ 编译文件并且它有效。或
使用 rpcgen 创建一个简单的server-client 程序。 我正在编写这个 .x 文件: program REMOTE_PROG { version MSG_RCV {
我创建了一个像这样的IDL: struct intpair { int a; int b; }; program ADD_PROG { version ADD_VERS {
我正在做一项作业,我们必须使用 RPCgen 生成的服务器和客户端 .c 文件来交换有关共享绘图板的信息。绘图板是使用 QtCreator 和 QtPainter 实现的。 我遇到的问题是,在编译时,
我正在尝试在我的 debian - lenny 上编译 VXI11 源代码,但出现此错误: make rpcgen -M vxi11.x make: rpcgen: command not found
我有一个文件 reken.x、client.c 和 server.c 来创建一个分布式系统。客户端将两个质数(因此是一个数)的乘积发送到服务器上的“ontbind”函数,该函数将数字分解回两个质数。当
我是一名优秀的程序员,十分优秀!