PRC编程 常见问题

PRC编程
常见问题

RPC编程常常会碰到各种问题,尤其对于刚接触和使用RPC的开发人员而言,有些简单的问题却很难通过GDB等常规手段定位。因此,这篇博文归纳了RPC开发过程中常见的一些问题和解决办法,以便自己今后参考。当然,随着对RPC的更多接触,会碰到更多的问题,将会在后面陆续整理到一起。

1.
RPC: Port mapper failure 错误

现象如下:

[[email protected]
bin]# ./test_rpc

probe_nvm_ops:
Fail to detect (simulated) nvm by cmds lsmod | grep "arxcis"!

probe_nvm_ops:
Fail to detect (simulated) nvm by cmds lsmod | grep "gigaram"!

probe_nvm_ops:
Success to detect (simulated) nvm by cmds cat /proc/cmdline | grep
"mem"!

nvm
status on 127.0.0.1: OK

nvm
status on 10.0.0.110: OK

10.0.0.111:
RPC: Port mapper failure - RPC: Unable to receive

解决办法Solution:

systemctl
start rpcbind.service

2.
Program not registered错误

现象如下:

[[email protected]
bin]# ./test_rpc

probe_nvm_ops:
Fail to detect (simulated) nvm by cmds lsmod | grep "arxcis"!

probe_nvm_ops:
Fail to detect (simulated) nvm by cmds lsmod | grep "gigaram"!

probe_nvm_ops:
Success to detect (simulated) nvm by cmds cat /proc/cmdline | grep
"mem"!

nvm
status on 127.0.0.1: OK

nvm
status on 10.0.0.110: OK

10.0.0.111:
RPC: Program not registered

解决办法Solution:
start a thread or daemon to rigeister RPC in remote node

3. 对于复杂的数据结构没有生成XDR线程

这个时候需要用rpcgen
-c *.c 来自动生成XDR线程,或者.x文件格式错误、版本冲突。

当然了,实际开发过程中碰到的问题可能千奇百怪,RPC开发过程中碰到的问题需要结合错误信息、基于RPC底层机制,有时还需要参考自动生成的参考代码,才能高效的定位和解决问题。

时间: 2024-10-13 22:50:51

PRC编程 常见问题的相关文章

CUDA编程常见问题 转

http://blog.csdn.net/yutianzuijin/article/details/8147912 分类: 编程语言2012-11-05 10:55 2521人阅读 评论(0) 收藏 举报 cudaGPU 最近初试cuda编程,作为一个新手,遇到了各种各样的问题,然后花费了大量时间解决这些匪夷所思的问题.为了避免后来人重蹈覆辙,现把自己遇到的问题总结如下. (一).cudaMalloc 初次使用该函数,感觉没有什么困难,和c语言的malloc类似.但是在具体应用中却出了一个很难找

【转】网络编程常见问题总结

网络编程常见问题总结 这里对在网络程序中遇到的一些问题进行了总结, 这里主要针对的是我们常用的TCP socket相关的总结, 可能会存在错误, 有任何问题欢迎大家提出. 对于网络编程的更多详细说明建议参考下面的书籍 <UNIX网络编程> <TCP/IP 详解> <Unix环境高级编程> < div> 网络编程常见问题总结 相关说明 非阻塞IO和阻塞IO 基本概念 设置 区别: 读: 写: 超时控制: 长连接和短连接的各种可能的问题及相应的处理 短连接: 长

android编程常见问题-程序在模拟器中不显示

新手编程常见问题: 问题表现:程序运行成功,但是在模拟器中不显示 解决办法:检查项目版本和模拟器版本是否匹配或兼容,如果不匹配,选择和模拟器版本一致 项目版本:右键-Properties-android-target name 和API ,查看版本(图1) 模拟器版本:打开AVD Manager,查看当前使用版本,或者通过Device  查看(图2)           图1           图2

android编程常见问题-程序真机中不显示

新手编程常见问题: 问题表现:连接上手机后,程序不显示 解决版本:检查AndroidManifest.xml 文件中SDK版本的设置(要求要兼容当前手机版本系统),如下:

Tcp编程常见问题及解决方法总结

问题1.粘包问题 解决方法一:TCP提供了强制数据立即传送的操作指令push,TCP软件收到该操作指令后,就立即将本段数据发送出去,而不必等待发送缓冲区满: 解决方法二:发送固定长度的消息 解决方法三:把消息的尺寸与消息一块发送 解决方法四:双方约定每次传送的大小 解决方法五:双方约定使用特殊标记来区分消息间隔 解决方法六:标准协议按协议规则处理,如Sip协议 问题2.字符串编码问题 将中文字符串用utf8编码格式转换为字节数组发送时,一个中文字符可能会占用2-4个字节(假设为3个字节),这3个

android编程常见问题-No Launcher activity found!

新手编程常见的问题: 问题表现: console提示:No Launcher activity found! The launch will only sync the application package on the device! 解决办法:检查AndroidManifest.xml中是否添加如下代码: <intent-filter > <action android:name="android.intent.action.MAIN"/> <cat

Java编程常见问题汇总

每天在写Java程序,其实里面有一些细节大家可能没怎么注意,这不,有人总结了一个我们编程中常见的问题.虽然一般没有什么大问题,但是最好别这样做. 字符串连接误用 错误的写法: String s = ""; for (Person p : persons) { s += ", " + p.getName(); } s = s.substring(2); //remove first comma 正确的写法: StringBuilder sb = new StringB

JAVA网络编程常见问题

一. 网络程序运行过程中的常见异常及处理 第1个异常是 java.net.BindException:Address already in use: JVM_Bind. 该异常发生在服务器端进行new ServerSocket(port)(port是一个0,65536的整型值)操作时.异常的原因是以为与port一样的一个端口已经被启动,并进行监 听.此时用netstat –an命令,可以看到一个Listending状态的端口.只需要找一个没有被占用的端口就能解决这个问题. 第2个异常是java.

android编程常见问题- Resource ID #0x7f070001 type #0x12 is not valid

问题说明: AndroidRuntime(1705): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.activitytest/com.example.activitytest.SecondActivity}: android.content.res.Resources$NotFoundException: Resource ID #0x7f070001 type #0x12 is n