Я просто очищаю код, который мы написали некоторое время назад, и заметил, что для сокета udp 0 обрабатывается как закрытое соединение.
Я уверен, что это было результатом переноса того же цикла recv из эквивалентной версии tcp. Но это заставляет меня задуматься. Может ли recv вернуть 0 для udp? на tcp он сигнализирует, что другой конец закрыл соединение. udp не имеет понятия связи, поэтому он может вернуть 0? и если это возможно, что это значит?
Примечание: справочная страница в Linux не различает udp и tcp для кода возврата 0, поэтому мы сохранили проверку кода.