Socket.EndReceiveMessageFrom 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
從指定的端點結束暫止的非同步讀取。 這個方法還會比 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 值的位元組合。
- ipPacketInformation
- IPPacketInformation
接收之封包的 IPAddress 和介面。
傳回
如果成功,則傳回接收的位元組數目。 如果不成功,則傳回 0。
例外狀況
asyncResult
不會經由對 BeginReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object) 方法的呼叫傳回。
僅 .NET Framework、.NET Core 和 .NET 5-6:Socket已關閉 。
備註
重要
這是相容性 API。 不建議使用 APM (Begin*
和 End*
) 方法來進行新的開發。 請改用型對 Task
等專案。
EndReceiveFrom 完成 由 BeginReceiveFrom啟動的作業。 您必須傳遞 IAsyncResult 比 BeginReceiveFrom 對呼叫所建立的 。 EndReceiveFrom 將會封鎖呼叫線程,直到作業完成為止。
檢查 ipPacketInformation
您是否需要使用單播、多播或廣播位址來傳送數據報。
注意
如果您收到 SocketException,請使用 SocketException.ErrorCode 屬性來取得特定的錯誤碼。