问题标签 [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 - Sun RPC:传输二进制文件
我想将二进制文件传输到远程服务器。我正在为我的代码使用 SUN/ONC RPC(Linux 上的 rpcgen)。我正在使用 C。我为服务器和客户端编写了代码,它适用于文本文件,但是当我尝试传输二进制文件时,它说文件在传输后已损坏。我将数据块存储在字符数组或 XDR 字符串中。我认为将数据存储为字符数组存在一些问题。有人可以告诉我问题是什么吗?有人可以帮帮我吗?
如果有人想看看我在做什么,我在这里附上我的代码片段以供参考。
我的 IDL:
我的服务器:
我的客户:
python - rpcbind授权问题
我在 Arch linux 和 Python (使用标准 python 套接字模块)接口上使用rpcbind
(SunRPC)与它通信。rpc.py
每次我尝试向 发送注册或注销请求时rpcbind
,我都会收到一条消息,由于安全原因我被拒绝。一切正常的唯一情况是当我rpcbind
在不安全模式下调用时(rpcbind -i
),但我真的想让一切都在安全模式下工作。我从 rpcbind 数据表中找到了我只能从环回地址以安全模式发出请求的信息,但我已经尝试了所有我知道的方法来制作这样的套接字,但一切都失败了。如何rpcbind
在安全模式下连接?
linux - 为什么在 Linux 上从 Groovy 调用的 C 程序中的 RPC 调用失败?
我们有一个用 C 编写的程序,它使用 RPC 与同一 Linux 服务器上的另一个程序(也用 C 编写)进行通信(在某些生产设置中,第二个 C 程序将在另一台机器上,因此 RPC 而不是 IPC)。
当从其他 C 程序、CRON 或命令行调用时,它按预期工作,并且已经这样做了很多年,所以可以肯定地说它通常可以工作。
从 Groovy 脚本调用的同一个程序失败了,显然是网络问题。
在 C 程序中,svc_register(xprt, prognum, versnum, dispatch, protocol)
成功,但随后
- 请求后在 RPC 服务器上:
clnttcp_create
失败并显示“连接被拒绝” - 在等待回复的 RPC 客户端上:
select
onsvc_fdset
失败EBADF
Groovy 程序(只是为了完整,这里不多见):
我们可以尝试查明并解决问题吗?
c - SunRPC 启用单向消息传递(流式传输/批处理?)
我们有一些在 Linux (RHEL 4/5) 上使用 SunRPC 的服务,我们希望加速这些服务。
我们的 RPC 调用不需要返回值,尽管根据 RPC 的性质,总是会发送一个 ack。这引入了最近成为问题的延迟 - 当通过可靠传输 (TCP) 运行时,我们希望避免 RPC 回复引入的延迟。
此处的文档表明 Solaris 具有启用该功能的“oneway”关键字,尽管 Linux/glibc 似乎不支持这一点。
有什么方法可以在 Linux 上使用 SunRPC 启用“流式传输”或单向消息传递?
design-patterns - SunRPC 机制作为 Client-Dispatcher-Server 架构的局限性及与 Broker 的比较
我正在读一本关于设计模式的书(旧版)“面向模式的软件架构”。在专门介绍 Client-Dispatcher-Server 的章节中,SunRPC 被称为 Client-Dispatcher-Server 体系结构,portmapper 在 Client-Server 协商中充当 Dispatcher。我实际上从未使用过 SunRPC,尽管我或多或少知道它是如何工作的。
我有三个问题:
- SunRPC 作为 Client-Dispatcher-Server 机制有哪些软件限制(在接口和功能方面)?
- 今天有什么类似的更好的系统来实现相同的客户端-调度程序-服务器架构(不管语言)?
- Broker 架构和 Client-Dispatcher-Server 架构之间的内在区别是什么?
我确实意识到问题很多而且很复杂。我考虑过拆分成独立的问题,但这次提交的重点是关于一般架构原则和限制,并以一个具体示例(SunRPC)作为典型案例。出于这些考虑,我先发制人地宣布,我将在有机会时立即提供 100 个代表的赏金,无论我在宽限期内对答案的满意度如何。
multithreading - 使用 MFC 清除 ONC RPC SVC_RUN() 退出
我对多线程代码很陌生,所以我希望有人可以帮助我解决我遇到的问题。
我有一个由 ONC/RPC 服务器和其他东西组成的多部分程序(“东西”与我的问题并不真正相关,但它必须在服务器程序中)。因为 svc_run() 永远不会返回,所以我想我会将它放在它自己的线程中,并且在程序结束时我会简单地终止线程并继续生活。
然而,我的程序现在已经扩展,我想干净、安全地退出或关闭 ONC/RPC 服务器,而不是终止线程。但是,我无法弄清楚如何安全地从 svc_run() 返回。有人能帮忙吗?
我发现其他几个人有同样的问题,但似乎没有人回应他们。我尝试简单地将 svc_run() 移动到与我的 server_process() 函数相同的文件中,但 fd_set 的结构没有正确填充(一切都是 0),并且函数失败。
svc_run() 在使用以下代码创建的 dll 中定义:http: //sourceforge.net/projects/oncrpc-windows/
我正在提供我的代码的相关元素。另请注意,svc_exit() 似乎不是我当前使用的 onc/rpc 系统的一部分。
抱歉问了这么长的问题,谢谢,
莱克斯
这是我的代码:
rpc - 可以在同一个端口上使用多个 Sun RPC (ONC-RPC) 程序号吗?
ONC RPC 标头包含程序号、版本号和过程号以标识调用。通常不同的 RPC 程序(服务)由不同的进程实现,所以程序映射到不同的 TCP/UDP 端口号。如果单个进程实现了多个 RPC 程序,它是否可以为所有这些程序注册并使用相同的端口?似乎程序编号足以解复用到正确的服务。
有没有这样做的真实例子?
c - SUN RPC (ONC/RPC):使用 C 中的 null 过程计算往返时间(或 ping)
如何计算或估计客户端和服务器之间的 RTT(往返时间)?
解决此问题的教程或示例也可以提供帮助。
c - 通过 Sun RPC 发送二进制文件
我正在尝试使用 Sun RPC 实现一个小型客户端-服务器程序。我希望它具有的一项功能是让客户端能够将任何格式的文件上传到服务器。
现在我有这个规范:
这是我的客户:
问题在于“in.file = read_file(argv[5])”语句。我收到一个编译器错误说明:
从类型'char *'分配给类型'struct'时不兼容的类型</p>
所以我的问题是,他需要什么样的指针?
谢谢!
莱纳斯
c++ - RPC:当数组太大时,xdr_bytes“无法编码参数”
我试图通过 RPC 发送一个数组,但是当数据数组变得很大时,我收到“RPC:无法编码参数”。根据我所见,不到 10Kb。
这是失败的线路。
这是被引用的结构。
有没有办法解决这个错误,或者有另一种方法来发送任意大的数组?