调用 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 的值的代码。