在網(wǎng)絡(luò)傳輸中要傳輸?shù)臄?shù)據(jù)往往是不定長的,一般我們可以分配足夠的空間,使用某個字段用于記錄傳輸?shù)臄?shù)據(jù)的長度。然后對數(shù)據(jù)壓縮后再進行傳輸。
定義數(shù)據(jù)結(jié)構(gòu)
typedef struct tagTransferData
{
///一些其他信息////
DWORD dataSize;
char buffer[1];//定義一個可變長度的數(shù)組
}Data,*PData;
使用:
PData pData = (PData)malloc(10000);
memset(pData,0,10000);
。。。。。。。。。
char sendData[]="good morning everyone!";
strcpy(pData->buffer,send
Data);
pData->dataSizse = strlen(sendData);
。。。。。。。。。
delete pData;
該數(shù)據(jù)結(jié)構(gòu):對于一塊內(nèi)存,開始記錄了后面要傳輸數(shù)據(jù)的大小,緊接著是要傳輸?shù)臄?shù)據(jù)。是的數(shù)據(jù)比較緊湊,易于管理。
個人認為:分配的多余的空間使用數(shù)據(jù)壓縮后,不會導(dǎo)致傳輸太多的無用數(shù)據(jù)。