问题标签 [xdr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
245 浏览

c - 了解函数“xdrmem_create”中的第二个参数

我正在调试神经节,并通过 UDP 通道使用 XDR 发送数据。我发现函数的第二个参数xdrmem_create ( xdrs, addr, size, op)很奇怪。其中参数的语法如下:

这个函数的参考在这里

如您所见,该函数的第二个参数(xdrs)是一个字符数组。这同样在神经节的功能之一中声明为char msgbuf[GANGLIA_MAX_MESSAGE_LEN];

在 ganglia 中调用上述函数后,通过调用where是一种变量类型的函数,xdrmem_create(&x, msgbuf, GANGLIA_MAX_MESSAGE_LEN, XDR_ENCODE);将 ganglia 特定结构 ( cb->msg) 中的适当数据编码为 XDR 格式。xdr_Ganglia_value_msg(&x, &(cb->msg))xXDR

稍后,为了通过 UDP 通道发送编码数据,该函数Ganglia_udp_send_message( udp_send_channels, msgbuf, len);被调用。为了了解这个 XDR 数据是如何发送的,我尝试打印msgbufusing的内容的输出,fprintf但它总是不打印任何内容,尽管它是一个字符数组。而且很明显,编码数据发送成功。

所以,我的问题是,编码成 XDR 格式的数据是如何在这里通过 UDP 通道发送的?

我在这里粘贴了来自 ganglia 的部分代码。您可以从第 131 到 136 行看到供您参考。

0 投票
1 回答
1343 浏览

rpc - 什么是可变长度字符串数组的正确 XDR 语法?

我正在阅读RFC 4506以了解 XDR 数据定义语言。

它提到可变长度数组声明如下。

它还提到可变长度字符串声明如下。

不幸的是,它显示具有可变长度字符串数组的唯一方法是链表,这似乎非常手动。

有没有更简单或更正确的方法来声明一个可变长度的字符串数组?

0 投票
1 回答
98 浏览

javascript - XDomainRequest 有时会随机中止

XDomainRequest 大多数时间都可以正常工作,但有时会在 ie9 中特别中止。有谁之前经历过这个吗?

如果您想看到这是我使用的 xdr 实现:

0 投票
1 回答
5587 浏览

c - 了解 XDR 规范以创建 *.x 文件

我一直在浏览互联网上的几个网站,实际上想知道我们如何在.x文件中编写规范以在用于 RPC 的.c文件。我访问的每个站点都建议在*.x文件中使用以下类型的规范:

因此,为了实际理解,我从一个名为 ganglia 的开源项目中获得了gm_protocol.x ,并使用 rpcgen生成了等效的 C 源代码 ( gm_protocol_xdr.c ) 和 C 头文件 ( gm_protocol.h )。

令我惊讶的是,根据我的学习和理解,gm_protocol.x 不包含任何如上面代码所示的 RPC 规范,但它仍然可以在文件 gm_protocol_xdr.c 中生成太多函数。

可以肯定的是,我无法理解 XDR 规范,因为要么我查阅了错误的来源,要么它们已经过时了。我找不到任何可以解释生成函数的方法的教程(尽管我找到了生成结构、枚举、联合等的规范)。

请帮助学习这些规范。

0 投票
1 回答
484 浏览

ajax - XDomainRequest onLoad 在 IE8 中未正确触发

我正在向 google geocode api 发出请求,以获取给定邮政编码的纬度和经度。这在所有浏览器栏 IE8 中都可以正常工作(震惊!)。

为了解决这个问题,我为 IE 实现了 XDomainRequest。

这就是我所说的

我还在继续之前检查错误

现在我说它不起作用,那是一个谎言,它确实起作用了它只是不能立即起作用,所以当它不应该发生时,错误就会被触发。

我已经尝试在 IE8 中进行调试,这似乎就是这样做的

  • 从表单元素获取邮政编码
  • 使用邮政编码跳转到功能
  • 创建新的 XDomainRequest
  • 跳过 xdr.onload
  • 创建新的 XDomainRequest
  • 跳出条件下到 isPostcodeValid 并返回错误

现在请求确实有效,我已经对其进行了测试,问题是它不能立即工作,因此会跳入错误。

任何人都知道为什么它会跳过负载而不是进入负载?

谢谢!

0 投票
1 回答
195 浏览

c - 这个 RPC xdr 副本有意义吗?

我有这个T_Struct来自电线的 RPC 结构。我想复制它,但我不想编写一个单独的函数来处理其成员的所有结构、分配和数组(尤其是我必须对其他结构的音调做同样的事情。 )

既然我已经有了解码、编码和免费的方法,那么有这样的东西是否有意义:

我明白最后,我也可以打电话xdr_free((xdrproc_t)xdr_T_Struct, (char *)destination ) ;

0 投票
1 回答
174 浏览

c - rpc 指针未显示正确的结果

所以我正在尝试使用一些 RPC 函数。

基本上我想将 2 个 2*2 矩阵相乘,客户端发送 2 个矩阵,客户端计算并发送矩阵。

我的客户收到的矩阵不是我发送的。

有人能解释一下为什么它不能正常工作或我犯了什么错误吗?

0 投票
1 回答
1965 浏览

c - 无法在远程过程调用中对参数进行编码以进行服务器注册

我有点疯狂地试图弄清楚为什么这不起作用。我正在使用 sunrpc,但生成的服务器代码会抛出以下内容:

无法注册服务:RPC:无法编码
无法注册的参数(MYRPC、MYRPC_V1、udp)。

我不知道为什么会这样。我正在执行以下操作来生成存根:

这是我的 XDR

编译 .x 文件以创建客户端、服务器、xdr 编组代码或标头时,我没有收到任何错误。我还实现了 rpc 接口,但由于在我尝试启动生成的服务器 (myrpc_svr.c) 时引发了该错误,因此无法对其进行测试。

这个错误消息甚至指的是什么论据?它不喜欢我在 XDR 中定义的函数的实现吗?为什么编码参数会导致程序甚至不注册?

实际上,我很惊讶这不是客户端错误消息

0 投票
0 回答
292 浏览

c - 如何打印作为 XDR 接收的字符串?

我有一个客户端和一个服务器,它们使用 XDR 表示法通过套接字相互通信。Unix环境。服务器正确地向客户端发送一个字符串(我检查了发送的字节数,它是正确的),客户端接收到字符串但它不正确,因为 printf 打印 NULL。

代码服务器:b 是 a (char **)

相反,这是客户端代码:

任何想法?谢谢你的建议

0 投票
1 回答
126 浏览

posix - 用于 RPC 的 XDR 中的 ssize_t 数据类型

我正在编写一个 RPC 应用程序。我需要在 C 部分使用 ssize_t 数据类型,并且需要通过网络发送。在 IDL 中我应该用什么表示 ssize_t?我可以将其转换为 int,但我想知道正确的方法,而不仅仅是转换为 int,不确定这是否是正确的方法。