История изменений
Исправление neversleep, (текущая версия) :
Перед recv()
делай ioctl(sock, FIONREAD, &length)
- чтобы узнать размер данных доступных для чтения, если <= 0, делай sleep()
, а если и после ожидания ничего не пришло, можно предположить, что данные получены (естественно, нужно проверять результаты ф-ций). Вообще наверно лучше сделать через неблокирующие сокеты, с помощью select()
.
Исходная версия neversleep, :
Перед recv()
делай ioctl(fd, FIONREAD, &length)
- чтобы узнать размер данных доступных для чтения, если <= 0, делай sleep()
, а если и после ожидания ничего не пришло, можно предположить, что данные получены (естественно, нужно проверять результаты ф-ций). Вообще наверно лучше сделать через неблокирующие сокеты, с помощью select()
.