Сокеты C / C ++ и неблокирующий recv ()

У меня проблема, когда вызов системного вызова recv () не блокируется . На данный момент у меня настроена структура клиент-сервер, и проблема, с которой я сталкиваюсь, заключается в том, что я отправляю серверу одно сообщение, в то время как сервер настроен так, что это примерно так:

while (1) {
   char buf[1024];
   recv(fd, buf, sizeof(buf), flags);
   processMsg(buf);
}

Он получает первое сообщение правильно, но recv () не блокирует и "получает" ненужные данные. Я хочу реагировать на сообщения только тогда, когда они отправлены. Кто-нибудь может посоветовать?

13
задан Jonathan Leffler 13 June 2011 в 02:43
поделиться