次の方法で共有


UdpClient.EndSend(IAsyncResult) メソッド

定義

保留中の非同期送信を終了します。

public:
 int EndSend(IAsyncResult ^ asyncResult);
public int EndSend (IAsyncResult asyncResult);
member this.EndSend : IAsyncResult -> int
Public Function EndSend (asyncResult As IAsyncResult) As Integer

パラメーター

asyncResult
IAsyncResult

BeginSend の呼び出しによって返される IAsyncResult オブジェクト。

戻り値

正常に完了した場合は、UdpClient に送信されたバイト数。

例外

asyncResultnullです。

BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) メソッドへの呼び出しで asyncResult が返されませんでした。

EndSend(IAsyncResult) が、非同期の読み取りのために以前に呼び出されています。

基になるソケットへのアクセスを試みているときにエラーが発生しました。

基になる Socket は閉じられています。

次のコード例では、 を使用 BeginSend して、サーバー要求の非同期送信を完了します。

public:
    static bool isMessageSent;

    static void SendCallback(IAsyncResult^ asyncResult)
    {
        UdpClient^ udpClient = (UdpClient^)asyncResult->AsyncState;

        Console::WriteLine("number of bytes sent: {0}",
            udpClient->EndSend(asyncResult));
        isMessageSent = true;
    }
public static bool messageSent = false;

public static void SendCallback(IAsyncResult ar)
{
    UdpClient u = (UdpClient)ar.AsyncState;

    Console.WriteLine($"number of bytes sent: {u.EndSend(ar)}");
    messageSent = true;
}

注釈

このメソッドは、操作が完了するまでブロックします。

この操作を同期的に実行するには、 メソッドを使用します Send

適用対象