问题标签 [sunrpc]
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.
c - 无法在远程过程调用中对参数进行编码以进行服务器注册
我有点疯狂地试图弄清楚为什么这不起作用。我正在使用 sunrpc,但生成的服务器代码会抛出以下内容:
无法注册服务:RPC:无法编码
无法注册的参数(MYRPC、MYRPC_V1、udp)。
我不知道为什么会这样。我正在执行以下操作来生成存根:
这是我的 XDR
编译 .x 文件以创建客户端、服务器、xdr 编组代码或标头时,我没有收到任何错误。我还实现了 rpc 接口,但由于在我尝试启动生成的服务器 (myrpc_svr.c) 时引发了该错误,因此无法对其进行测试。
这个错误消息甚至指的是什么论据?它不喜欢我在 XDR 中定义的函数的实现吗?为什么编码参数会导致程序甚至不注册?
实际上,我很惊讶这不是客户端错误消息
posix - 用于 RPC 的 XDR 中的 ssize_t 数据类型
我正在编写一个 RPC 应用程序。我需要在 C 部分使用 ssize_t 数据类型,并且需要通过网络发送。在 IDL 中我应该用什么表示 ssize_t?我可以将其转换为 int,但我想知道正确的方法,而不仅仅是转换为 int,不确定这是否是正确的方法。
c - linux rpc命令和重传
我们在我们的应用程序中使用 RPC(udp 套接字),我们注意到 RPC 在目标应用程序没有收到(或确认)消息时会重新传输它。
RPC 是否呈现消息的顺序?假设我们有消息 1 和消息 2,它是否等待消息 1 被接收者确认然后发送消息 2?
我也无法找到默认情况下它重试了多少次,如果在 x 次重试后发送失败,它会在某处记录它以便我们检查它吗?
谢谢
c - 从服务器向客户端发送带有 sun rpc 的结构数组
如何在 ansi-c sun-rpc 中正确地将结构从服务器发送到客户端?
在我的test.x IDL 文件中,我定义了一个结构簇,它带有一个字符串和一个 int 以及一个类型 clusters,它是一个可变长度的簇元素数组:
然后我更改了 rpcgen 生成的存根,例如
测试服务器.c
和test_client.c
两者都可以编译,但服务器经常在客户端运行一两个请求后出现段错误,并且在客户端,xdr_clusters 函数永远不会返回 true。这似乎是某种内存管理不善,我也不确定我是否正确处理了服务器端的序列化。
我只是用适当的值填充了 result.clusters_len 和 result.clusters_val,就像它们在test.h中定义的一样(由 rpcgen 定义):
我是否必须在服务器端使用 xdr_clusters 才能正确序列化结果?
谢谢你
rpc - 如何释放在我的 RPC 服务器中分配的内存?
我有一个将大量可变长度数据传输到客户端的 RPC 服务器。.x 文件看起来像这样
在服务器例程中,我有
我的问题是谁释放了在服务器例程中分配的数据?
amazon-web-services - 在 Amazon EC2 实例上设置 SUN RPC
任何人都可以帮忙吗?我被困住了。我有一个 EC2 实例和一个在本地运行良好的客户端/服务器 Sun RPC 应用程序。
服务器部分在 EC2 实例上运行正常(启动,等待客户端连接。
在我的家用电脑上运行的客户端部分总是说:
我在客户端和服务器上都运行了 rpcinfo -p,它们对我来说看起来不错:
EC2 服务器:
客户:
我已经为 EC2 实例上的 TCP 入站打开了端口 111。它看起来从客户端打开: nping -p 111 ec2-XX-XXX-XX-XX.us-west-2.compute.amazonaws.com 返回响应。
有人有什么想法吗?
c - 如何在 SUN-RPC 中实现多服务器和服务器端复制?
我正在尝试使用 Sun-RPC 实现多个客户端和多个服务器。但是,我一开始就无法同时运行多个服务器。
这是 IDL
这是服务器 1 的代码:
这是服务器 2:
这是我的客户 1 代码。
我正在尝试使用 Maekawa 算法通过我的客户端显式实现文件复制。然而,在同一个本地主机上的 RPC 上运行多个服务器是非常不可能的。甚至可能吗?如果我在不同的计算机上运行代码,那会起作用吗?目前,我从在第一台服务器之后运行的服务器收到分段错误。客户端只是脱口而出 Connection reset by peer。无论如何我可以完成这项工作吗?
gcc - 包错误:FEDORA 30 中的 glibc-header
我正在使用 Fedora 30。为了安装Madagascar(一个地震包),有一个 ./configure 代码,它测试了几个要求。
glibc-headers 有一个错误:
Needed package: glibc-headers
Fatal missing dependency
在 config.log 文件中,我检查了错误:
gcc -o .sconf_temp/conftest_2.o -c -O2 -x c -std=gnu99 -Wall -pedantic .sconf_temp/conftest_2.c
.sconf_temp/conftest_2.c:2:14: fatal error: rpc/types.h: No such file or directory
哪里conftest_2.c
是:
为了找到types.h
我做了:
find /usr/include -name types.h
下一个结果:
我已经安装glibc-headers
如下:
sudo dnf -y install glibc-headers
Package glibc-headers-2.29-15.fc30.x86_64 is already installed.
我该如何解决这个问题?
c - after generate the rpc files and try to compile it i get an conflict error
It's my first day trying to figure out rpcgen and I can't quite understrand 2 things. First of all, how am I able to return a pointer from a procedure. But my main question is why am i getting this error when I try to compile it after I generate it. Every information would be useful
I literally do this rpcgen -a -C proj.x
then I change a part of the Makefile as follows:
and then I try the make
command
Erorr:
proj.x
rpc - 我们什么时候可以得到 PORTMAP 过程的 GETADDR 和 GETPORT
有人可以评论端口映射程序版本的决定方式和级别。实际上在 2 个不同的环境中,我得到了不同的过程和程序版本。在情况 1:我得到程序版本 2 和过程 GETPORT 在情况 2:我得到程序版本 4 和过程 GETADDR。
我如何确保在每种情况下都调用 GETPORT 而不是 GETADDR。