我们在应用程序中使用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设置的值,您将获得重试次数。
同步/异步行为只取决于你的应用。