XDR 编解码
2019-03-12 本文已影响0人
帆子_8c3a
XDR协议定义在RFC4506,解决不同平台之间传输数据的问题。
- XDR_ENCODE: encode到xdr
- XDR_DECODE: 从xdr中decode
以下是使用的例子
#include<stdio.h>
#include<rpc/xdr.h>
#include<string.h>
int main(int argc,char* argv[])
{
short s1=34,s2;
char c1='M',c2;
double d1 = 66.66,d2;
const char *p1 = "marvin";
char *p2 = NULL;
XDR xdr;
char buff[120];
xdrmem_create(&xdr,buff,120,XDR_ENCODE);
xdr_string(&xdr,(char**)&p1,sizeof(p1));
xdr_short(&xdr,&s1);
xdr_char(&xdr,&c1);
xdr_double(&xdr,&d1);
xdrmem_create(&xdr,buff,120,XDR_DECODE);
xdr_string(&xdr,&p2,sizeof(p2));
xdr_short(&xdr,&s2);
xdr_char(&xdr,&c2);
xdr_double(&xdr,&d2);
return 0;
}