我有一个客户端和一个服务器,它们使用 XDR 表示法通过套接字相互通信。Unix环境。服务器正确地向客户端发送一个字符串(我检查了发送的字节数,它是正确的),客户端接收到字符串但它不正确,因为 printf 打印 NULL。
代码服务器:b 是 a (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);
任何想法?谢谢你的建议