Там столько труда нужно приложить чтобы все сделать какой то упаковщик
но у меня и без него работает эта функция из synchapi.h
TCP сессия будет разорвана в любом случае.
iroute 192.168.1.0 255.255.255.0
push "route 192.168.31.0 255.255.255.0"
ifconfig-push 10.8.0.2 255.255.255.0
git remote --help
Если вы в select() просто бесконечно ждете, когда данные появятся на сокете, а затем вызываете recv(), то чем использование select() отличается от простого вызова recv(), который то же ждет данных?
select нужен, там где он нужен. Например, когда вы пишете асинхронное приложение и у вас 100500 сокетов для опроса, или когда вы пытаетесь между получением данных делать какую-то другую полезную работу в том же потоке. Если ничего этого нет (как в нашем примере), то использование select избыточно.
На счет возвращения нуля в recv(), вам уже ответил galaxy