since the application may probably be closed already or not in a state where it can read from the socket anymore, where is the data going to go?
Depende da implementação. Se o soquete for fechado no final do aplicativo, a pilha TCP pode simplesmente soltar os dados recebidos no chão. Como alternativa, você poderia ter uma implementação que não retornasse da chamada close
() (ou equivalente) até que o FIN do servidor fosse recebido, permitindo que outro thread continuasse para read
() do soquete (embora umwrite
% () receberia um erro). Se o read
() não fosse concluído antes do FIN do servidor chegar, o EOF poderia ser sinalizado. (Substitua "thread" por "callback" em um modelo assíncrono).
A melhor maneira de responder à sua pergunta: teste-a em sua (s) implementação (ões) preferida (s).