dotnet/runtime

Inconsistent behavior of Dgram Socket.Disconnect

Open

#34 473 ouverte le 2 avr. 2020

Voir sur GitHub
 (4 commentaires) (0 réactions) (0 assignés)C# (5 445 forks)batch import
area-System.Net.Socketsenhancementhelp wantedtenet-compatibility

Métriques du dépôt

Stars
 (17 886 stars)
Métriques de merge PR
 (Merge moyen 12j 11h) (661 PRs mergées en 30 j)

Description

Socket.Disconnect(boolean) method called on UDP socket behaves differently on different platforms. On Linux (Ubuntu 18.04.03 LTS) x64 it doesn't throw exception. On Windows 10 I get the following exception:

Message: 
    System.Net.Sockets.SocketException : A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using a sendto call) no address was supplied.
  Stack Trace: 
    Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, String callerName)
    Socket.Disconnect(Boolean reuseSocket)

Probably, behavior on Windows 10 is correct because UDP is connectionless protocol.

Version is .NET Core 3.1.201.

Guide contributeur