C 如何打印作为XDR接收的字符串?
我有一个客户机和一个服务器,它们通过使用XDR符号的套接字相互通信。Unix环境。服务器正确地向客户端发送字符串(我检查了发送的字节数,它是正确的),客户端接收到字符串,但它不正确,因为printf print为NULL 代码服务器:b是a(字符**) 相反,这是客户端代码:C 如何打印作为XDR接收的字符串?,c,sockets,unix,network-programming,xdr,C,Sockets,Unix,Network Programming,Xdr,我有一个客户机和一个服务器,它们通过使用XDR符号的套接字相互通信。Unix环境。服务器正确地向客户端发送字符串(我检查了发送的字节数,它是正确的),客户端接收到字符串,但它不正确,因为printf print为NULL 代码服务器:b是a(字符**) 相反,这是客户端代码: xdrmem_create(&xdrs_r, buffer, MAXBUFL, XDR_DECODE); Read (socketID, buffer, 8); xdr_string(&xdrs_r
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);
有什么想法吗?感谢您的建议如何声明
bf
呢?为什么不使用直接连接到网络流的xdr
?您也无法读取8字节并尝试将其解码为8字节长度的字符串(xdr编码使用长度字符串编码)。如何声明bf
?为什么不使用直接连接到网络流的xdr
?您也无法读取8字节并尝试将其解码为8字节长度的字符串(xdr编码使用长度字符串编码)。
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);