1
我想通過TCP連接將數據流存儲到大型數組中,我該怎麼做?通過tcp將數據流存儲到大數組中的最佳方式是什麼?
我的代碼:
int iResult, count;
int recvbuflen = 512;
char buff[4096]={0};
char recvbuf[512] = {0};
.................
count = 0;
do {
iResult = recv(ClientSocket, recvbuf, recvbuflen, 0);
if (iResult > 0) {
count+=iResult;
//code to store in the buff[] array until reach to 4096 byte
//that's what i need
//for example: each time bind or add the recvbuf[] array at
//the end of buff[] array until reach to 4096 byte.
if(count == 4096)
{
//do the next process
count = 0;
}
}
}while(iResult > 0);
任何幫忙。
你有正確的原則,但你應該在循環的下一次迭代中收到'iResult'字節*少*。否則,你可能會在第一次調用(第一次迭代)時收到4095個字節,下一次調用時會收到4096個字節(下一次迭代),這不是你想要的。 –
不,我知道這是接收的數據不超過4096字節。 –
@abdo.eng2006210:否,每次最多可以接收512個字節,因此請準備好複製已收到字節後收到的字節數。通常,您還應該檢查總共可以收到超過4096個字節。 – stefaanv