问题标签 [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 回答
104 浏览

c - NFSACL GETACL / SETACL 结构

我在客户端和服务器之间有一个代理服务器。

我使用 XDR 读取和修改它们之间的 NFS 消息

例如,如果我想编辑文件大小并获取属性回复,我使用结构和函数

GETATTR3res

bool_t xdr_GETATTR3res (XDR *xdrs, GETATTR3res *objp);

现在我想使用相同的方法来修改回复

RPC:

程序:NFSACL (100227)

程序版本:3

程序:GETACL (1) 和 SETACL (2)

我想用 xdr 编辑(fattr3)属性字段

NFSACL 的 XDR 函数,甚至 NFSACL 过程具有的字段的解构 XDR 函数

0 投票
1 回答
242 浏览

python - 如何将 python dict 打包到 XDR

我有 python 字典:

如何将此 dict 打包为 XDR 数据格式?

0 投票
1 回答
1606 浏览

c - RPC 无法解码 TCP 传输的参数

我正在基于此页面中的示例开发多线程 RPC 服务器:http: //bderzhavets.blogspot.ca/2005/11/multithreaded-rpc-server-in-white-box.html

不幸的是,它并没有完全开箱即用,并且在跟踪错误一段时间后,我发现服务器无法解码参数(基于来自的返回码squareproc_2)。squareproc_2_svc在调用函数后,服务器端的执行似乎停止了serv_request。请参见case: SQUAREPROCsquare_svc.c 的以下代码

这是squareproc_2_svc来自文件 square_server.c 的实现:

客户端输出:

服务器端输出:

如您所见,xdr_square_in 在服务器端返回 FALSE 结果。这是 square.x

和 square_xdr.c

我在 Ubuntu 14.04 LTS 中工作,使用 生成存根和 xdr 代码rpcgen -a -M,并使用gcc.

该错误似乎仅在使用 TCP 作为传输方法时发生。我可以使用 UDP 作为传输来获得结果,但是当来自多个客户端的请求同时到达时,一些调用会失败。我希望能够支持多达 15 个客户。当我尝试使用 UDP 和 10 个客户端时,10 个调用中有 2 个失败,返回代码与squareproc_2.

0 投票
1 回答
3818 浏览

c - 将用 C 编写的整数数组保存到 JSON 文本文件数组

如何将写入为 ac 文件的整数数组保存到 JSON 文本文件数组文件中?任何帮助或链接将不胜感激。

0 投票
1 回答
409 浏览

c# - RPC:连接 C# 和旧版 C++ XDR

我有多个具有定义的 RPC 接口的旧设备,用 C++ XDR (.x) 文件编写。我需要从现代 C# 应用程序访问这些设备,换句话说,要实现与旧 C++ RPC 服务器匹配的新 RPC C# 客户端。

我发现的免费选项之一是 Google Protocol Buffers,但我有一些疑问。

  1. 关于选择的一般建议?那行得通吗?“C++ XDR”<-->“Protobuf C#”?
  2. XDR(.x) 文件可以转换为 Proto2 或 Proto3(.proto) 样式的协议缓冲区吗?

谢谢,伊戈尔。

0 投票
1 回答
1027 浏览

c++ - 通过 TCP 套接字发送 XDR 的好方法

我有一些通过 TCP 套接字发送的 XDR 数据包。这是我的代码片段:

其中数据包被序列化如下:

作为第一个测试,我假设最大数据包大小为 2000,并且我总是从另一侧读取 2000。作为第一次测试,这项工作很好,但我希望能够在不需要时发送和接收更少的信息。此外,我不想重新编译客户端,以防我增加服务器上的数据包大小。

我想知道是否有适当的方法来发送和接收此流,而不必自己预先设置数据包大小。如果我必须自己添加这个,有没有办法轻松获得 xdr 大小?

干杯,

补充: 我尝试使用 xdr_rec 缓冲区,如下所示:

如果我给它一个正确的 10 uint32 缓冲区,一切都很好。现在我试图在我的缓冲区末尾剪切一些字节,我期待或者xdrrec_eofxdrrec_skiprecord我一个错误。这就是我想用它来检测我还没有收到所有数据。取而代之的是,两者都成功返回并xdr_uint32_t阻止代码执行。所以我现在真正想念的是一种在开始解码之前检测到我已经收到完整数据包的方法xdr_uint32_t。有什么建议吗?

0 投票
1 回答
385 浏览

python - Python XDR TCP 流

我有一个接收 XDR 数据的 C 套接字服务器。我写了一个 C 和一个 Java 客户端。我正在尝试使用xdrlib.

当我通过服务器对此进行解码时,数据是不同的。这是因为数据被编码为通过 xdrmem 解码器读取。(他们没有记录的开始和结束)。

有谁知道是否有支持创建 xdr 记录的 python 库?在 c 中,这是通过在 Java 中完成的,xdrrec_create而在 Java 中,这被称为XdrTcpEncodingStream.

0 投票
1 回答
608 浏览

c++ - XDR 序列化可变长度字符串数组

我正在通过 XDR 序列化一个数据包,但我不明白如何提供字符串向量。我在这里有一个小型的完全工作的序列化/反序列化,std::vector用于uint64_t. 这是我的代码:

序列化器

解串器

以下代码有效...运行./serializer | ./deserializer我得到 1 2 3。现在我不知道如何处理必须序列化std::vector<std::string>。单个字符串使用 xdr_string 效果很好。

http://linux.die.net/man/3/xdr_array

任何帮助将不胜感激!

编辑:

我尝试了以下方法: 序列化程序

解串器

我很确定序列化程序的代码不是最好的,但至少它可以工作。但是反序列化器没有!我认为问题与我不知道在调用 xdr_array 之前要分配多少内存有关。有什么帮助吗?

0 投票
2 回答
411 浏览

c - ONC RPC 从服务器发送一个结构中的字符

当我从服务器向客户端发送一个字符串时,我遇到了一个问题,它只发送一个数字为“1”的字符。

rpc.x

问题在于查询功能。

RPC文件

我的第一个想法是我用 inet_ntoa 严重改变了格式,或者我没有节省足够的内存,但我尝试了所有但没有工作。

客户端.c

端口工作正常,但无论我做什么,ip 总是打印“1”。我希望有人能找到错误,在此先感谢您。

0 投票
1 回答
174 浏览

networking - XDR 协议字节序和网络字节序有什么关系?

XDR 协议使用大端。这与网络字节顺序的概念有什么关系?这是直接后果,还是它们是独立的?

我想我想问的是在哪个 ISO/OSI 层定义了网络字节顺序。XDR运行在表现层,那么它使用big endian是不是因为网络字节序标准也覆盖了表现层呢?