Здравствуйте, 4LF, Вы писали:
4LF>при первом вызове все принимается... когда вызываю функцию второй раз recv сразу возвращает -1
Попробуйте получить код ошибки вместо возвращения false

Это многое прояснянит.. Как получить, зависит от ОС — WSAGetLastError (Windows), errno(UNIX).