Socket.SendAsync 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í.
Přetížení
| Name | Description |
|---|---|
| SendAsync(ReadOnlyMemory<Byte>, CancellationToken) |
Odesílá data na připojeném soketu. |
| SendAsync(IList<ArraySegment<Byte>>, SocketFlags) |
Odesílá data na připojeném soketu. |
| SendAsync(ArraySegment<Byte>, SocketFlags) |
Odesílá data na připojeném soketu. |
| SendAsync(ReadOnlyMemory<Byte>, SocketFlags, CancellationToken) |
Odesílá data na připojeném soketu. |
| SendAsync(IList<ArraySegment<Byte>>) |
Odesílá data na připojeném soketu. |
| SendAsync(ArraySegment<Byte>) |
Odesílá data na připojeném soketu. |
| SendAsync(SocketAsyncEventArgs) |
Odesílá data asynchronně do připojeného Socket objektu. |
SendAsync(ReadOnlyMemory<Byte>, CancellationToken)
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
Odesílá data na připojeném soketu.
public System.Threading.Tasks.ValueTask<int> SendAsync(ReadOnlyMemory<byte> buffer, System.Threading.CancellationToken cancellationToken = default);
member this.SendAsync : ReadOnlyMemory<byte> * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function SendAsync (buffer As ReadOnlyMemory(Of Byte), Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)
Parametry
- buffer
- ReadOnlyMemory<Byte>
Vyrovnávací paměť pro odesílání dat.
- cancellationToken
- CancellationToken
Token zrušení, který lze použít ke zrušení asynchronní operace.
Návraty
Asynchronní úloha, která se dokončí s počtem odeslaných bajtů.
Výjimky
Token zrušení byl zrušen. Tato výjimka je uložena do vrácené úlohy.
Platí pro
SendAsync(IList<ArraySegment<Byte>>, SocketFlags)
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
Odesílá data na připojeném soketu.
public:
System::Threading::Tasks::Task<int> ^ SendAsync(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags);
public System.Threading.Tasks.Task<int> SendAsync(System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags);
member this.SendAsync : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags -> System.Threading.Tasks.Task<int>
Public Function SendAsync (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags) As Task(Of Integer)
Parametry
- buffers
- IList<ArraySegment<Byte>>
Seznam vyrovnávacích pamětí pro odesílání dat.
- socketFlags
- SocketFlags
Bitové kombinace hodnot SocketFlags, které budou použity při odesílání dat.
Návraty
Asynchronní úloha, která se dokončí s počtem odeslaných bajtů.
Výjimky
buffers je null.
Při pokusu o přístup k soketu došlo k chybě.
Ta Socket byla uzavřena.
Poznámky
Tato metoda ukládá do úlohy všechny výjimky bez použití, které může vyvolat synchronní protějšek metody. Pokud je výjimka uložena do vrácené úlohy, tato výjimka bude vyvolána, když je úkol očekáván. Výjimky použití, například ArgumentException, jsou stále vyvolány synchronně. V případě uložených výjimek se podívejte na výjimky vyvolané Send(IList<ArraySegment<Byte>>, SocketFlags).
Platí pro
SendAsync(ArraySegment<Byte>, SocketFlags)
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
Odesílá data na připojeném soketu.
public:
System::Threading::Tasks::Task<int> ^ SendAsync(ArraySegment<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags);
public System.Threading.Tasks.Task<int> SendAsync(ArraySegment<byte> buffer, System.Net.Sockets.SocketFlags socketFlags);
member this.SendAsync : ArraySegment<byte> * System.Net.Sockets.SocketFlags -> System.Threading.Tasks.Task<int>
Public Function SendAsync (buffer As ArraySegment(Of Byte), socketFlags As SocketFlags) As Task(Of Integer)
Parametry
- buffer
- ArraySegment<Byte>
Vyrovnávací paměť pro odesílání dat.
- socketFlags
- SocketFlags
Bitové kombinace hodnot SocketFlags, které budou použity při odesílání dat.
Návraty
Asynchronní úloha, která se dokončí s počtem odeslaných bajtů.
Výjimky
Při pokusu o přístup k soketu došlo k chybě.
Ta Socket byla uzavřena.
Platí pro
SendAsync(ReadOnlyMemory<Byte>, SocketFlags, CancellationToken)
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
Odesílá data na připojeném soketu.
public System.Threading.Tasks.ValueTask<int> SendAsync(ReadOnlyMemory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Threading.CancellationToken cancellationToken = default);
member this.SendAsync : ReadOnlyMemory<byte> * System.Net.Sockets.SocketFlags * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function SendAsync (buffer As ReadOnlyMemory(Of Byte), socketFlags As SocketFlags, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)
Parametry
- buffer
- ReadOnlyMemory<Byte>
Vyrovnávací paměť pro odesílání dat.
- socketFlags
- SocketFlags
Bitové kombinace hodnot SocketFlags, které budou použity při odesílání dat.
- cancellationToken
- CancellationToken
Token zrušení, který lze použít ke zrušení asynchronní operace.
Návraty
Asynchronní úloha, která se dokončí s počtem odeslaných bajtů.
Výjimky
Při pokusu o přístup k soketu došlo k chybě.
Ta Socket byla uzavřena.
Token zrušení byl zrušen. Tato výjimka je uložena do vrácené úlohy.
Platí pro
SendAsync(IList<ArraySegment<Byte>>)
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
Odesílá data na připojeném soketu.
public:
System::Threading::Tasks::Task<int> ^ SendAsync(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers);
public System.Threading.Tasks.Task<int> SendAsync(System.Collections.Generic.IList<ArraySegment<byte>> buffers);
member this.SendAsync : System.Collections.Generic.IList<ArraySegment<byte>> -> System.Threading.Tasks.Task<int>
Public Function SendAsync (buffers As IList(Of ArraySegment(Of Byte))) As Task(Of Integer)
Parametry
- buffers
- IList<ArraySegment<Byte>>
Seznam vyrovnávacích pamětí pro odesílání dat.
Návraty
Asynchronní úloha, která se dokončí s počtem odeslaných bajtů.
Výjimky
buffers je null.
Při pokusu o přístup k soketu došlo k chybě.
Ta Socket byla uzavřena.
Poznámky
Tato metoda ukládá do úlohy všechny výjimky bez použití, které může vyvolat synchronní protějšek metody. Pokud je výjimka uložena do vrácené úlohy, tato výjimka bude vyvolána, když je úkol očekáván. Výjimky použití, například ArgumentException, jsou stále vyvolány synchronně. V případě uložených výjimek se podívejte na výjimky vyvolané Send(IList<ArraySegment<Byte>>).
Platí pro
SendAsync(ArraySegment<Byte>)
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
Odesílá data na připojeném soketu.
public:
System::Threading::Tasks::Task<int> ^ SendAsync(ArraySegment<System::Byte> buffer);
public System.Threading.Tasks.Task<int> SendAsync(ArraySegment<byte> buffer);
member this.SendAsync : ArraySegment<byte> -> System.Threading.Tasks.Task<int>
Public Function SendAsync (buffer As ArraySegment(Of Byte)) As Task(Of Integer)
Parametry
- buffer
- ArraySegment<Byte>
Vyrovnávací paměť pro odesílání dat.
Návraty
Asynchronní úloha, která se dokončí s počtem odeslaných bajtů.
Výjimky
Při pokusu o přístup k soketu došlo k chybě.
Ta Socket byla uzavřena.
Platí pro
SendAsync(SocketAsyncEventArgs)
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
Odesílá data asynchronně do připojeného Socket objektu.
public:
bool SendAsync(System::Net::Sockets::SocketAsyncEventArgs ^ e);
public bool SendAsync(System.Net.Sockets.SocketAsyncEventArgs e);
member this.SendAsync : System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Function SendAsync (e As SocketAsyncEventArgs) As Boolean
Parametry
Objekt SocketAsyncEventArgs , který se má použít pro tuto asynchronní operaci soketu.
Návraty
true pokud operace vstupně-výstupní operace čeká na vyřízení. Událost Completed parametru e bude vyvolána po dokončení operace.
false pokud se vstupně-výstupní operace dokončila synchronně. V tomto případě Completed nebude vyvolána událost parametru e a e objekt předaný jako parametr může být zkoumán okamžitě po volání metody vrátí načíst výsledek operace.
Výjimky
Vlastnosti Buffer parametru BufferListe musí odkazovat na platné vyrovnávací paměti. Jedna nebo druhá z těchto vlastností může být nastavena, ale ne obě současně.
Operace soketu již probíhala pomocí objektu SocketAsyncEventArgs zadaného v parametru e .
Ta Socket byla uzavřena.
Ještě Socket není připojen nebo nebyl získán prostřednictvím Accept()metody , AcceptAsync(SocketAsyncEventArgs), nebo BeginAccept.
Poznámky
Metoda SendAsync se používá k zápisu odchozích dat z jedné nebo více vyrovnávacích pamětí v soketu orientovaném na připojení. Tuto metodu lze použít také u soketů bez připojení, které určily vzdáleného hostitele v operaci připojení.
Metoda SendAsync spustí asynchronní operaci odesílání vzdálenému hostiteli vytvořenému v metodě Accept, , AcceptAsync, BeginAcceptBeginConnect, Connect, nebo ConnectAsync metodě.
K úspěšnému volání této metody jsou vyžadovány následující vlastnosti a události objektu System.Net.Sockets.SocketAsyncEventArgs :
SocketAsyncEventArgs.Buffer nebo SocketAsyncEventArgs.BufferList
SocketAsyncEventArgs.Count Pokud SocketAsyncEventArgs.Buffer je nastavená
SocketAsyncEventArgs.Offset Pokud SocketAsyncEventArgs.Buffer je nastavená
Volající může před voláním SocketAsyncEventArgs.UserToken metody nastavit SendAsync vlastnost na libovolný objekt stavu uživatele, aby informace byly v metodě zpětného volání dostupné. Pokud zpětné volání potřebuje více informací než jeden objekt, lze vytvořit malou třídu, která bude obsahovat další požadované informace o stavu jako členy.
Metoda SendAsync vyvolá výjimku, pokud nevoláte první volání Accept, AcceptAsync, BeginAcceptBeginConnect, , Connectnebo ConnectAsync.
SendAsync Volání metody umožňuje odesílat data v samostatném vlákně spuštění.
U soketů orientovaných na zprávy nepřekračujte maximální velikost zprávy základního poskytovatele služeb soketů systému Windows. Pokud jsou data příliš dlouhá na to, aby se předávala atomicky přes základního poskytovatele služeb, nepřenesou se žádná data a SendAsync metoda vyvolá SocketException sadu s SocketAsyncEventArgs.SocketError nativním kódem chyby Winsock WSAEMSGSIZE (10040).
Všimněte si, že úspěšné dokončení SendAsync metody neznamená, že data byla úspěšně doručena.