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