Каков наилучший способ хранения потока данных через 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);

любая помощь.

1

Решение

Вы можете просто напрямую вызвать в свой большой буфер и добавлять смещение каждый раз:

iRes = recv(ClientSocket, (buff+offset), 4096-offset, 0);

И т.д. Просто следите за тем, чтобы не переполнить буфер. Если вам нужно получить данные отдельно и добавить их в буфер в зависимости от содержимого, просто запишите в буфер recvbuf (со смещением). Смещение просто отслеживает, до какой точки буфер уже заполнен.
Опять же, следите за переполнением буфера.

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]