SendFile lança NotSupportedException para soquetes sem conexão
O comportamento da SendFile família de métodos para soquetes sem conexão (por exemplo, UDP) agora é consistente em todas as plataformas. Os métodos afetados agora lançam um NotSupportedException em todas as plataformas.
Comportamento anterior
Anteriormente, para um sem Socket conexão (por exemplo, UDP), os seguintes comportamentos foram observados:
- SendFile jogou um NotSupportedException no Windows, mas não em plataformas Unix-like.
- O ValueTask devolvido de SendFileAsync armazenou um SocketException em todas as plataformas.
- Chamando EndSendFile um IAsyncResult retorno de BeginSendFile jogou um SocketException em todas as plataformas.
Novo comportamento
A partir do .NET 8, para um sem Socket conexão (por exemplo, UDP), os seguintes comportamentos são observados:
- SendFile lança um NotSupportedException em todas as plataformas.
- O ValueTask devolvido das SendFileAsync lojas a NotSupportedException em todas as plataformas.
- Chamar EndSendFile um IAsyncResult retorno de BeginSendFile lança um NotSupportedException em todas as plataformas.
Versão introduzida
.NET 8 RC 1
Tipo de mudança de rutura
Esta mudança é uma mudança comportamental.
Razão para a alteração
Dado que SendFile
normalmente é usado com grandes quantidades de dados, não faz sentido usá-lo com soquetes sem conexão. Além disso, o comportamento anterior foi inconsistente, jogando SocketException
em algumas plataformas, enquanto sucedeu em outras com um resultado imprevisível.
Ação recomendada
Não use SendFile
métodos para soquetes sem conexão.