如何打印作为XDR收到的字符串?

时间:2015-06-26 18:59:16

标签: c sockets unix network-programming xdr

我有一个客户端和一个服务器,使用XDR表示法与其他套接字进行通信。 Unix环境。服务器正确地向客户端发送一个字符串(我检查了发送的字节数,它是正确的),客户端接收到的字符串却不正确,因为printf打印为NULL。

代码服务器:b是(char **)

xdrmem_create (&xdrs_w, buffer, MAXBUFL, XDR_ENCODE);
xdr_string(&xdrs_w, &b, 32);
strcpy(b, "ciaociao");
printf("I am sending: %s\n", b);
Writen (socketID2, b, strlen(b));
xdr_destroy(&xdrs_w);

相反,这是客户端代码:

xdrmem_create(&xdrs_r, buffer, MAXBUFL, XDR_DECODE);
Read (socketID, buffer, 8);    
xdr_string(&xdrs_r, &bf, 32);
buffer[8]='\0';
printf("Result: %s\n",bf);  /NULL?!?!
xdr_destroy(&xdrs_r);

有什么想法吗?谢谢你的建议

0 个答案:

没有答案