Поделиться через


Socket.LocalEndPoint обновляется после вызова SendToAsync

Socket.SendToAsync(SocketAsyncEventArgs) теперь обновляет значение свойства Socket.LocalEndPoint, используя локальный адрес сокета.

Представленные версии

5,0

Описание изменения

В предыдущих версиях .NET Socket.SendToAsync(SocketAsyncEventArgs) не изменяет значение свойства Socket.LocalEndPoint для экземпляра сокета. Начиная с .NET 5 при успешном завершении SendToAsync(SocketAsyncEventArgs) в качестве значения Socket.LocalEndPoint устанавливается локальный адрес неявно привязанного сокета. Это согласуется с поведением SendTo(Byte[], EndPoint) и BeginSendTo(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)/EndSendTo(IAsyncResult).

Причина изменения

Это изменение позволяет исправить ошибку и обеспечивает согласованность поведения в вариантах SendTo.

Измените любой код, в котором предполагается, что SendToAsync(SocketAsyncEventArgs) не изменяет значение Socket.LocalEndPoint.

Затронутые API