RPC数据传递

时间:2016-02-17 01:05:51

标签: c protocols rpc

我正在尝试使用结构从服务器发回消息。但我遇到了result_1 = null的问题。我的猜测是没有任何回传,但我不知道如何解决它。这是我的代码。

msg.x
struct message{
      string timeinfo<255>;
      string cpu<255>;
      string memory<255>;
      string proclist<255>;
};

program MSGPROG {
   version MSGVERS {
      message MSGSEND(void) = 1;
               } = 1;
} = 0x20000000;

服务器端

        result.timeinfo= asctime(timeinfo);
        printf ("something: %s\n",result.timeinfo);
        return &result;

客户端

 #endif  /* DEBUG */

        result_1 = msgsend_1((void*)&msgsend_1_arg, clnt);
        //      if (result_1 == (message *) NULL) {                             
        //              clnt_perror (clnt, "call failed");                      
        //      }else{                                                          


        printf("Result time: %s\n",&(*result_1).timeinfo);
          //    }      %%                                                         

我评论了调试检查以查看结果中发生了什么,并尝试将结果的格式更改为&amp;(*(result_1).timeinfo)和大量格式。它们都不起作用。打印将是结果时间:( null)或类似分段错误......

这是服务器的结果,我认为数据会进入result.timeinfo。

something: Tue Feb 16 19:52:55 2016

1 个答案:

答案 0 :(得分:0)

您正在分配“某事”的地址。你需要strcpy结果。