Поделиться через


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

Объект IAsyncResult, возвращаемый при вызове объекта BeginSend.

Возвращаемое значение

Количество отправленных объекту UdpClient байтов, если операция успешно выполнена.

Исключения

asyncResult имеет значение null.

Параметр asyncResult не был возвращен вызовом метода BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object).

Метод 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 метод .

Применяется к