У меня есть клиенты, отправляющие запрос очень простой формы: просто строка GET/PUT/INSERT/DELETE KEY <VALUE>
, где значение необязательно в зависимости от выбранного ключевого слова.
Ключи и значения могут быть произвольного размера.
Я внедряю сервер на C для обслуживания запросов, однако мне кажется, что я сталкиваюсь с проблемой, что системный вызов read () читает некоторые, но не все данные. То есть то, что прочитал сервер, является лишь подмножеством того, что отправил клиент.
Как я могу узнать, когда все сообщение было прочитано?
Пример запросов:
INSERT KEYkeyKEYkeyKEY VALUEvalueVALUEvalueVALUE
Но сервер может прочитать:
INSERT KEYkeyKEYkeyKEY VALUEvalueVALUE
Как я могу узнать, что все сообщение еще не получено и не прочитано?