Udostępnij za pośrednictwem


UdpClient.EndSend(IAsyncResult) Metoda

Definicja

Kończy oczekujące wysyłanie asynchroniczne.

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

Parametry

asyncResult
IAsyncResult

IAsyncResult Obiekt zwrócony przez wywołanie metody BeginSend.

Zwraca

W przypadku powodzenia liczba bajtów wysłanych do obiektu UdpClient.

Wyjątki

asyncResult to null.

asyncResult element nie został zwrócony przez wywołanie BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) metody .

EndSend(IAsyncResult) wcześniej był wywoływany dla odczytu asynchronicznego.

Wystąpił błąd podczas próby uzyskania dostępu do bazowego gniazda.

Bazowy Socket został zamknięty.

Przykłady

Poniższy przykład kodu używa BeginSend metody do ukończenia asynchronicznego wysyłania żądania serwera.

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;
}

Uwagi

Ta metoda blokuje działanie do momentu ukończenia operacji.

Aby wykonać tę operację synchronicznie, użyj Send metody .

Dotyczy