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 的位元組數目。

例外狀況

asyncResultnull

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 方法。

適用於