c - RPC 函数返回结构;客户值(value)观垃圾

标签 c rpc

问题:在 Solaris RPC 中,我从服务器返回一个结构。我已将其声明为静态。

但在客户端中,某些值是 00 而不是值。我正在打印之前的值

服务器返回调用,没问题。 但是相同的打印语句在客户端中给出了垃圾值。

    struct enc_request{
            int enc_len;
            unsigned char enc_msg[700];
    };

    in server proc:
    static enc_reply reply_e;
    return (&reply_e);

谁能告诉我哪里出了问题。

输出: 原回复发送 114 105 107 104 051 089 076 069 097 083 051 100 053 078 066 054 054 109 106 106 077 055 102 056 114 043 121 103 068 103 073 115 109 043 087 108 111 080 118 052 110 080 114 047 065 104 097 097 051 084 068 080 102 065 054 080 114 073 116 106 106 106 084 084 084 110 109 088 076 116 110 070 070 087 105 104 043 104 043 111 104 074 074 074 06666666666052 052 052 052 066 120 098 116 120 098 116 107 047 047 047 047 077080890808908908908908907070470950890890950704704704704704704704704704709115470911549999Y转机

收到回复 114 105 107 104 051 089 076 069 097 083 051 100 053 078 066 054 054 109 106 106 077 055 102 056 114 043 121 103 068 103 073 115 109 043 087 108 111 080 118 052 110 080 114 047 065 104 097 097 051 084 068 080 102 065 054 080 114 073 116 106 084 084 110 109 088 076 116 110 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000

最佳答案

我不知道整个情况,但在发出和接收 RPC 请求时,数据的大小可能不正确,从而产生零。服务器和客户端是否有机制来标准化 struct enc_reply 的大小?我见过类似的情况,其中 32 位系统将数据发送到 64 位系统并使用 sizeof() 来确定结构的大小,这在不同的体系结构中产生了不可预测的结果。

关于c - RPC 函数返回结构;客户值(value)观垃圾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10340172/

相关文章:

检查字符串中是否存在所有 char 值

c - 模拟 GCC 语句表达式

c - 为什么要触发两次 SIGINT 才能按预期工作?

xcode - Interface Builder 和 Xcode 集成不起作用

java - Web 服务的简单 java 客户端代码 - 与 QName 有关吗?

c - C fork() 和 wait() 调用如何工作?

c - 为什么这个循环永远持续下去?

rpc - 在ubuntu上编译rpcgen程序

java - Tcp协议(protocol)和远程过程调用有什么区别?

multithreading - JGroups RPC : NoSuchMethodException