UdpClient.EndSend(IAsyncResult) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
結束暫止的非同步傳送。
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 方法。