Socket.EndSendTo(IAsyncResult) 方法

定義

結束暫止的非同步傳送至指定的位置。

C#
public int EndSendTo(IAsyncResult asyncResult);

參數

asyncResult
IAsyncResult

IAsyncResult,存放此非同步作業 (Asynchronous Operation) 的狀態資訊和任何使用者定義的資料。

傳回

如果成功,則傳送位元組數目,否則,則產生一個無效的 Socket 錯誤。

例外狀況

asyncResultnull

先前已針對非同步傳送呼叫 EndSendTo(IAsyncResult)

嘗試存取通訊端時發生錯誤。

-或-

只限 .NET 7+ : Socket 已關閉 。

僅限 .NET Framework、.NET Core 和 .NET 5-6:Socket已關閉 。

備註

重要

這是相容性 API。 不建議使用 APM (Begin*End*) 方法來進行新的開發。 請改用型對 Task等專案。

EndSendTo 完成 由 BeginSendTo啟動的作業。 您必須傳遞 IAsyncResultBeginSendTo 對呼叫所建立的 。

如果您使用無連線通訊協定, EndSendTo 將會封鎖直到傳送數據報為止。 如果您使用連接導向通訊協定,將會封鎖, EndSendTo 直到傳送要求的位元元組數目為止。 不保證您傳送的數據會立即出現在網路上。 為了提升網路效率,基礎系統可能會延遲傳輸,直到收集大量的傳出數據為止。 方法成功完成 BeginSendTo 表示基礎系統有空間可緩衝處理網路傳送的數據。

備註

如果您收到 SocketException,請使用 SocketException.ErrorCode 屬性來取得特定的錯誤碼。 取得此程式代碼之後,請參閱 Windows Sockets 第 2 版 API 錯誤碼 檔,以取得錯誤的詳細描述。

備註

在應用程式中啟用網路追蹤時,這個成員會輸出追蹤資訊。 如需詳細資訊,請參閱 .NET Framework 中的網路追蹤

適用於

產品 版本
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1