调用 SendToAsync 后更新 Socket.LocalEndPoint

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) 的行为一致。

更改原因

此更改会修复一个 bug,并使该行为在 SendTo 变体中保持一致。

更改所有假定 SendToAsync(SocketAsyncEventArgs) 不会更改 Socket.LocalEndPoint 的值的代码。

受影响的 API