Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何打印作为XDR接收的字符串?_C_Sockets_Unix_Network Programming_Xdr - Fatal编程技术网

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

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

我有一个客户机和一个服务器,它们通过使用XDR符号的套接字相互通信。Unix环境。服务器正确地向客户端发送字符串(我检查了发送的字节数,它是正确的),客户端接收到字符串,但它不正确,因为printf print为NULL

代码服务器:b是a(字符**)

相反,这是客户端代码:

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);