Это относится к моему предыдущему вопросу, на который уже был дан ответ:
C: Когда я читаю, используя вызов выбора, как отслеживать данные?
Мой протокол на самом деле отправляет, сколько данных он собирается отправить, прежде чем он отправит какие-либо другие данные. Но вчера, когда я тестировал этот код с помощью браузера, у меня возник один вопрос:
Многие люди предложили мне проверить длину сообщения, но использовать сценарий браузера. HTTP-запрос браузера не имеет размера при первой отправке на сервер. Теперь, предполагая, что я использовал 256-байтовый буфер, как мне управлять структурой данных этого клиента, если я продолжаю получать частичные заголовки между каждым действием мультиплексирования? Продолжайте использовать realloc, поскольку я продолжаю получать больше данных, а затем, когда я сталкиваюсь с последовательностью завершения ('\ r \ n'), предположим, что все данные были получены?
Я имею в виду, что-то вроде этого:
typedef struct {
int fd;
char *data;
} CLIENT;
А затем продолжать использовать realloc для данных? Мне сказали выделить размер буфера для максимального заголовка протокола, но разве это единственный подход?