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í
SendAsync(ReadOnlyMemory<Byte>, CancellationToken) |
Odesílá data do připojeného soketu. |
SendAsync(IList<ArraySegment<Byte>>, SocketFlags) |
Odesílá data do připojeného soketu. |
SendAsync(ArraySegment<Byte>, SocketFlags) |
Odesílá data do připojeného soketu. |
SendAsync(ReadOnlyMemory<Byte>, SocketFlags, CancellationToken) |
Odesílá data do připojeného soketu. |
SendAsync(IList<ArraySegment<Byte>>) |
Odesílá data do připojeného soketu. |
SendAsync(ArraySegment<Byte>) |
Odesílá data do připojeného 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
Odesílá data do připojeného 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 data, která se mají odeslat.
- 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 se uloží do vrácené úlohy.
Platí pro
SendAsync(IList<ArraySegment<Byte>>, SocketFlags)
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
Odesílá data do připojeného 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 data, která se mají odeslat.
- socketFlags
- SocketFlags
Bitové kombinace SocketFlags hodnoty, 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ě.
Byla Socket uzavřena.
Poznámky
Tato metoda ukládá do úlohy, která vrací všechny výjimky nepouužování, které může vyvolat synchronní protějšek metody. Pokud je do vrácené úlohy uložena výjimka, bude tato výjimka vyvolána, když je úloha očekávána. Výjimky použití, jako ArgumentExceptionje , se stále vyvolává synchronně. Informace o uložených výjimkách najdete v tématu Výjimky vyvolané nástrojem Send(IList<ArraySegment<Byte>>, SocketFlags).
Platí pro
SendAsync(ArraySegment<Byte>, SocketFlags)
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
Odesílá data do připojeného 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 data, která se mají odeslat.
- socketFlags
- SocketFlags
Bitové kombinace SocketFlags hodnoty, 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ě.
Byla Socket uzavřena.
Platí pro
SendAsync(ReadOnlyMemory<Byte>, SocketFlags, CancellationToken)
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
Odesílá data do připojeného 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 data, která se mají odeslat.
- socketFlags
- SocketFlags
Bitové kombinace SocketFlags hodnoty, 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ě.
Byla Socket uzavřena.
Token zrušení byl zrušen. Tato výjimka se uloží do vrácené úlohy.
Platí pro
SendAsync(IList<ArraySegment<Byte>>)
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
Odesílá data do připojeného 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 data, která se mají odeslat.
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ě.
Byla Socket uzavřena.
Poznámky
Tato metoda ukládá do úlohy, která vrací všechny výjimky nepouužování, které může vyvolat synchronní protějšek metody. Pokud je do vrácené úlohy uložena výjimka, bude tato výjimka vyvolána, když je úloha očekávána. Výjimky použití, jako ArgumentExceptionje , se stále vyvolává synchronně. Informace o uložených výjimkách najdete v tématu Výjimky vyvolané nástrojem Send(IList<ArraySegment<Byte>>).
Platí pro
SendAsync(ArraySegment<Byte>)
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
Odesílá data do připojeného 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 data, která se mají odeslat.
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ě.
Byla Socket uzavřena.
Platí pro
SendAsync(SocketAsyncEventArgs)
- 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í soketové operace.
Návraty
true
pokud operace V/V čeká na vyřízení. Událost Completed parametru e
se vyvolá po dokončení operace.
false
pokud se vstupně-výstupní operace dokončila synchronně. V tomto případě událost parametru e
nebude vyvolána a e
objekt předaný jako parametr může být prozkoumán okamžitě poté, Completed co se volání metody vrátí, aby se načetl výsledek operace.
Výjimky
Vlastnosti Buffer nebo BufferList u parametru e
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
.
Byla Socket uzavřena.
Objekt Socket ještě není připojen nebo nebyl získán metodou Accept(), 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 při operaci připojení.
Metoda SendAsync spustí operaci asynchronního odeslání vzdálenému hostiteli vytvořenému Acceptv metodě , AcceptAsync, BeginAccept, BeginConnect, Connectnebo ConnectAsync .
Následující vlastnosti a události na objektu System.Net.Sockets.SocketAsyncEventArgs jsou vyžadovány k úspěšnému volání této metody:
SocketAsyncEventArgs.Buffer nebo SocketAsyncEventArgs.BufferList
SocketAsyncEventArgs.Count pokud SocketAsyncEventArgs.Buffer je nastavená
SocketAsyncEventArgs.Offset pokud SocketAsyncEventArgs.Buffer je nastavená
Volající může nastavit SocketAsyncEventArgs.UserToken vlastnost na libovolný objekt stavu uživatele požadovaný před voláním SendAsync metody tak, aby informace bylo možné získat v metodě zpětného volání. Pokud zpětné volání potřebuje více informací než jeden objekt, lze vytvořit malou třídu, která bude obsahovat ostatní požadované informace o stavu jako členy.
Metoda SendAsync vyvolá výjimku, pokud nejprve nezavoláte Accept, AcceptAsync, BeginAcceptBeginConnect, Connectnebo ConnectAsync.
SendAsync Volání metody vám dává možnost odesílat data v rámci samostatného vlákna provádění.
U soketů orientovaných na zprávy nepřekračujte maximální velikost zprávy základního zprostředkovatele služby Sokety systému Windows. Pokud jsou data příliš dlouhá na to, aby se předala atomicky prostřednictvím základního poskytovatele služeb, nepřenesou se žádná data a SendAsync metoda vyvolá SocketException chybu se SocketAsyncEventArgs.SocketError sadou na nativní kód chyby Winsock WSAEMSGSIZE (10040).
Všimněte si, že úspěšné dokončení SendAsync metody neznamená, že data byla úspěšně doručena.