Socket.EndSend Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Ukončí čekající asynchronní odeslání.
Přetížení
EndSend(IAsyncResult) |
Ukončí čekající asynchronní odeslání. |
EndSend(IAsyncResult, SocketError) |
Ukončí čekající asynchronní odeslání. |
EndSend(IAsyncResult)
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
Ukončí čekající asynchronní odeslání.
public:
int EndSend(IAsyncResult ^ asyncResult);
public int EndSend (IAsyncResult asyncResult);
member this.EndSend : IAsyncResult -> int
Public Function EndSend (asyncResult As IAsyncResult) As Integer
Parametry
- asyncResult
- IAsyncResult
Objekt IAsyncResult , který ukládá informace o stavu pro tuto asynchronní operaci.
Návraty
V případě úspěchu počet bajtů odeslaných do . V opačném případě dojde k Socketneplatné Socket chybě.
Výjimky
asyncResult
je null
.
asyncResult
nebyla vrácena voláním BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) metody.
EndSend(IAsyncResult) byl dříve volán pro asynchronní odesílání.
Pouze rozhraní .NET Framework, .NET Core a .NET 5-6: Byl Socket uzavřen.
Poznámky
Důležité
Toto je rozhraní API pro kompatibilitu. Pro nový vývoj nedoporučujeme používat metody APM (Begin*
a End*
). Místo toho použijte ekvivalenty založené na Task
.
EndSend dokončí operaci spuštěnou nástrojem BeginSend. Musíte předat IAsyncResult vytvořené odpovídající BeginSend volání.
Pokud používáte protokol bez připojení, bude blokovat, EndSend dokud se datagram odešle. Pokud používáte protokol orientovaný na připojení, bude blokovat, EndSend dokud nebude odeslána část vyrovnávací paměti. Pokud návratová hodnota z EndSend znamená, že vyrovnávací paměť nebyla zcela odeslána, zavolejte metodu BeginSend znovu a upravte vyrovnávací paměť tak, aby se dochovala neodeslaná data.
Neexistuje žádná záruka, že se odeslaná data zobrazí v síti okamžitě. Za účelem zvýšení efektivity sítě může základní systém zpozdit přenos, dokud se neshromáždí významné množství odchozích dat. Úspěšné dokončení BeginSend metody znamená, že základní systém měl prostor pro ukládání dat do vyrovnávací paměti pro odeslání do sítě.
Poznámka
Pokud se zobrazí SocketException, použijte SocketException.ErrorCode vlastnost k získání konkrétního kódu chyby.
Poznámka
Všechny vstupně-výstupní operace iniciované daným vláknem se při ukončení vlákna zruší. Čekající asynchronní operace může selhat, pokud se vlákno ukončí před dokončením operace.
Poznámka
Úspěšné dokončení odeslání neznamená, že data byla úspěšně doručena. Pokud v rámci přenosového systému není k dispozici žádné místo vyrovnávací paměti pro uložení přenášených dat, bude odesílání blokovat, pokud soket není umístěn v režimu neblokování.
Poznámka
Tento člen poskytuje trasovací informace, když je ve vaší aplikaci povoleno trasování sítě. Další informace najdete v tématu Trasování sítě v rozhraní .NET Framework.
Viz také
- BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)
- AsyncCallback
- AsyncState
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
- NoDelay
Platí pro
EndSend(IAsyncResult, SocketError)
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
Ukončí čekající asynchronní odeslání.
public:
int EndSend(IAsyncResult ^ asyncResult, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int EndSend (IAsyncResult asyncResult, out System.Net.Sockets.SocketError errorCode);
member this.EndSend : IAsyncResult * SocketError -> int
Public Function EndSend (asyncResult As IAsyncResult, ByRef errorCode As SocketError) As Integer
Parametry
- asyncResult
- IAsyncResult
Objekt IAsyncResult , který ukládá informace o stavu pro tuto asynchronní operaci.
- errorCode
- SocketError
Objekt SocketError , který ukládá chybu soketu.
Návraty
V případě úspěchu počet bajtů odeslaných do . V opačném případě dojde k Socketneplatné Socket chybě.
Výjimky
asyncResult
je null
.
asyncResult
nebyla vrácena voláním BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) metody.
EndSend(IAsyncResult) byl dříve volán pro asynchronní odesílání.
Pouze rozhraní .NET Framework, .NET Core a .NET 5-6: Byl Socket uzavřen.
Poznámky
Důležité
Toto je rozhraní API pro kompatibilitu. Pro nový vývoj nedoporučujeme používat metody APM (Begin*
a End*
). Místo toho použijte ekvivalenty založené na Task
.
EndSend dokončí operaci spuštěnou nástrojem BeginSend. Musíte předat IAsyncResult vytvořené odpovídající BeginSend volání.
Pokud používáte protokol bez připojení, bude blokovat, EndSend dokud se datagram odešle. Pokud používáte protokol orientovaný na připojení, bude blokovat, EndSend dokud nebude odeslána část vyrovnávací paměti. Pokud návratová hodnota z EndSend znamená, že vyrovnávací paměť nebyla zcela odeslána, zavolejte metodu BeginSend znovu a upravte vyrovnávací paměť tak, aby se dochovala neodeslaná data.
Neexistuje žádná záruka, že se odeslaná data zobrazí v síti okamžitě. Za účelem zvýšení efektivity sítě může základní systém zpozdit přenos, dokud se neshromáždí významné množství odchozích dat. Úspěšné dokončení BeginSend metody znamená, že základní systém měl prostor pro ukládání dat do vyrovnávací paměti pro odeslání do sítě.
Poznámka
Pokud se zobrazí SocketException, použijte SocketException.ErrorCode vlastnost k získání konkrétního kódu chyby.
Poznámka
Všechny vstupně-výstupní operace iniciované daným vláknem se při ukončení vlákna zruší. Čekající asynchronní operace může selhat, pokud se vlákno ukončí před dokončením operace.
Poznámka
Úspěšné dokončení odeslání neznamená, že data byla úspěšně doručena. Pokud v rámci přenosového systému není k dispozici žádné místo vyrovnávací paměti pro uložení přenášených dat, bude odesílání blokovat, pokud soket není umístěn v režimu neblokování.
Poznámka
Tento člen poskytuje trasovací informace, když je ve vaší aplikaci povoleno trasování sítě. Další informace najdete v tématu Trasování sítě v rozhraní .NET Framework.
Viz také
- BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)
- AsyncCallback
- AsyncState
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
- NoDelay