Socket.EndReceiveMessageFrom 方法

定義

從指定的端點結束暫止的非同步讀取。 這個方法還會比 EndReceiveFrom(IAsyncResult, EndPoint) 提供更多的封包資訊。

public:
 int EndReceiveMessageFrom(IAsyncResult ^ asyncResult, System::Net::Sockets::SocketFlags % socketFlags, System::Net::EndPoint ^ % endPoint, [Runtime::InteropServices::Out] System::Net::Sockets::IPPacketInformation % ipPacketInformation);
public int EndReceiveMessageFrom (IAsyncResult asyncResult, ref System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint endPoint, out System.Net.Sockets.IPPacketInformation ipPacketInformation);
member this.EndReceiveMessageFrom : IAsyncResult * SocketFlags * EndPoint * IPPacketInformation -> int
Public Function EndReceiveMessageFrom (asyncResult As IAsyncResult, ByRef socketFlags As SocketFlags, ByRef endPoint As EndPoint, ByRef ipPacketInformation As IPPacketInformation) As Integer

參數

asyncResult
IAsyncResult

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

socketFlags
SocketFlags

接收封包之 SocketFlags 值的位元組合。

endPoint
EndPoint

來源 EndPoint

ipPacketInformation
IPPacketInformation

接收之封包的 IPAddress 和介面。

傳回

如果成功,則傳回接收的位元組數目。 如果不成功,則傳回 0。

例外狀況

asyncResultnull

-或-

endPointnull

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

-或-

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

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

備註

重要

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

EndReceiveFrom 完成 由 BeginReceiveFrom啟動的作業。 您必須傳遞 IAsyncResultBeginReceiveFrom 對呼叫所建立的 。 EndReceiveFrom 將會封鎖呼叫線程,直到作業完成為止。

檢查 ipPacketInformation 您是否需要使用單播、多播或廣播位址來傳送數據報。

注意

如果您收到 SocketException,請使用 SocketException.ErrorCode 屬性來取得特定的錯誤碼。

適用於