【发布时间】:2012-05-05 10:47:56
【问题描述】:
我已将服务器-客户端应用程序编程为 RPC(低级)。
这是我的服务器功能,用于验证我的 IP 地址(这里只是必要的信息):
int *checkip_1_svc(ip_adress *argp, struct svc_req *rqstp)
{
static int result;
struct sockaddr_in test_ip;
result =1;
return(&result);
}
现在我想从连接的客户端打印 IP 地址。
我试过了:
printf("Clientadress:%s", rqstp->rq_xprt->xp_raddr.sin_addr.s_addr);
这不起作用。我遇到了分段错误。
【问题讨论】:
-
1) 可能
rqstp是一个空指针。 2)rqstp->rq_xprt->xp_raddr.sin_addr.s_addr可能不是字符串 -
1) 它不是空指针。我试过了。 2.) 我尝试使用 (char*) 进行投射,但这也不起作用!
-
好吧,剩下 2) :它不是字符串。
-
你知道如何转换它或将它复制到一个字符串 ;-) 吗?
-
尝试以十六进制打印,格式为“%08x”。 (由于您的代码不完整且不全面,我无法为您提供更多帮助)
标签: c client-server rpc