Ответ 1
udp не имеет понятия соединения, поэтому он может возвращать 0? а также если это возможно, что это значит
Это означает, что датаграмма дейтаграммы длиной 0. Из большого UNP:
Написание дейтаграммы длины 0 допустимо. В случае UDP это приводит к IP-дейтаграмме, содержащей IP-заголовок (обычно 20 байт для IPv4 и 40 байтов для IPv6), 8-байтовый UDP-заголовок и отсутствие данных. Это также означает, что допустимое значение 0 из recvfrom допустимо для протокола дейтаграммы. Это не означает, что сверстник закрыл соединение, как и возвращаемое значение 0 из чтения в сокет TCP. Поскольку UDP является без установления соединения, нет такой вещи, как закрытие UDP соединение.