используя select в winsock2 - PullRequest
1 голос
/ 15 июня 2011

Я пытаюсь заставить select работать правильно, и кажется, что он возвращает 1, даже когда нечего читать в сокете. Поэтому я в итоге вызываю recv, и он блокируется, потому что там нечего читать.

Также раздражает тот факт, что с winsock необходимо вызывать FD_SET каждый раз, когда вызывается select, что не согласуется со стандартными реализациями.

Есть ли еще какие-то странные причуды, о которых мне нужно знать?

1 Ответ

1 голос
/ 18 июня 2011

Я исправил это, но я не могу определить, что именно было причиной проблемы.Я знаю, что очень важно, чтобы FD_SET использовался для переустановки набора для каждого вызова select().Согласно документации, после вызова select он заполняет наборы, которые готовы для чтения / записи / и т.д.

Мораль сегодняшней истории такова: прочитайте документацию.

...