No Linux, o recv pode retornar 0 no UDP?
Estou apenas limpando algum código que escrevemos há algum tempo e notei que, para um soquete udp, 0 está sendo tratado como a conexão fechada.
Tenho certeza que este foi o resultado de portar o mesmo loop recv da versão tcp equivalente. Mas isso me faz pensar. Pode recv retornar 0 para o udp? no tcp ele sinaliza que a outra extremidade fechou a conexão. O udp não tem o conceito de uma conexão, então pode retornar 0? e se puder, qual é o significado?
Nota: a página man no linux não distingue udp e tcp por um código de retorno zero, o que pode ser o motivo pelo qual mantivemos a verificação no código.