Linux RPC命令和重传



我们在应用程序中使用RPC (udp套接字),我们注意到RPC在未被目标应用程序接收(或确认)时重新传输它的消息。

RPC表示消息的顺序吗?假设我们有消息1和消息2,它是否等待消息1被接收方确认,然后发送消息2?

我也没能找到多少重试它默认情况下,如果发送失败后x重试它是否记录在某个地方,所以我们可以检查它?

谢谢

RPC库有一个调用来控制重试请求之前等待的时间:

 struct timeval tv;
 clnt_control(cl, CLSET_TIMEOUT, (char *) &tv);

当您调用RPC调用时,提供总超时:

 enum clnt_stat clnt_call(CLIENT *clnt, unsigned long procnum,
                       xdrproc_t inproc, char *in,
                       xdrproc_t outproc, char *out,
                       struct timeval tout);

如果您将tout除以您用clnt_control设置的值,您将获得重试次数。

同步/异步行为只取决于你的应用。

相关内容

  • 没有找到相关文章

最新更新