一个关于流转换的问题!!用于UDP发送!
情况如下:
现有一结构:
struct FileStreamInfo{
long Size;
AnsiString FileName;
TMemoryStream *FileStream;
};
现在我要把这个结构转换成为一个unsigned char*指针就像流一样!!
把前面两个成员Size和FileName转换成为unsigned char*很简单!!
AnsiString Sizetmp = IntToStr(Size);
unsigned char* chSize= new char[Sizetmp.Length() + 1];
unSigned char* tmpSize = chSize;
strcpy(chSize,Sizetmp.c_str(),Size.Length());
Sizetmp += Size.Length();
Sizetmp = '\0';
FileName也是使用类似办法
当UDP接到因为后面都使用了'\0'就很容易把结构里的Size和FileName读出来并还原成结构.
我现在的问题是如何把FileStream也转换成为一个unsigned char*并和前面两个成员SizeFileName加到一起成为一个完整的流!并在UDP收到后可以还原成为上面的哪个结构!!急!!
我想要的流是这样的:unsigned char* = FileStreamInfo.Size + FileStreamInfo.FileName + FileStreamInfo.FileStream,我把这个unsigned char*流通过使用udp传送给别一台电脑,另一台电脑又要把这个unsigned char*还原成为上面的结构