Socket.SendAsync Metoda

Definice

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)

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í odesílat.

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 ve vrácené úloze.

Platí pro

SendAsync(IList<ArraySegment<Byte>>, SocketFlags)

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í odesílat.

socketFlags
SocketFlags

Bitové kombinace hodnot SocketFlags, které se použijí 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ě.

Poznámky

Tato metoda ukládá do úlohy, která vrací všechny výjimky nesouvisejí s používáním, které může vyvolat synchronní protějšek metody. Pokud je ve vrácené úloze uložena výjimka, bude tato výjimka vyvolána při čekání na úkol. Výjimky použití, například ArgumentException, jsou stále vyvolány 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)

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í odesílat.

socketFlags
SocketFlags

Bitové kombinace hodnot SocketFlags, které se použijí 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ě.

Platí pro

SendAsync(ReadOnlyMemory<Byte>, SocketFlags, CancellationToken)

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í odesílat.

socketFlags
SocketFlags

Bitové kombinace hodnot SocketFlags, které se použijí 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ě.

Token zrušení byl zrušen. Tato výjimka je uložena ve vrácené úloze.

Platí pro

SendAsync(IList<ArraySegment<Byte>>)

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í odesílat.

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ě.

Poznámky

Tato metoda ukládá do úlohy, která vrací všechny výjimky nesouvisejí s používáním, které může vyvolat synchronní protějšek metody. Pokud je ve vrácené úloze uložena výjimka, bude tato výjimka vyvolána při čekání na úkol. Výjimky použití, například ArgumentException, jsou stále vyvolány 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>)

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í odesílat.

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ě.

Platí pro

SendAsync(SocketAsyncEventArgs)

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

e
SocketAsyncEventArgs

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 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 zkontrolován okamžitě poté, Completed co volání metody vrátí výsledek operace.

Výjimky

Vlastnosti Buffer nebo BufferList 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ě najednou.

Operace soketu již probíhala pomocí objektu SocketAsyncEventArgs zadaného v parametru e .

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é zadaly vzdáleného hostitele při operaci připojení.

Metoda SendAsync spustí asynchronní operaci odesílání vzdálenému hostiteli vytvořenému v Acceptmetodě , AcceptAsync, BeginAccept, BeginConnect, Connectnebo ConnectAsync .

K úspěšnému System.Net.Sockets.SocketAsyncEventArgs volání této metody jsou vyžadovány následující vlastnosti a události objektu:

Volající může nastavit SocketAsyncEventArgs.UserToken vlastnost na libovolný objekt stavu uživatele požadovaný před voláním SendAsync metody, aby informace byly možné získat v metodě zpětného volání. Pokud zpětné volání potřebuje více informací než jeden objekt, je možné vytvořit malou třídu, která bude obsahovat další 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 umožňuje odesílat data v samostatném spouštěcím vlákně.

U soketů orientovaných na zprávy nepřekračujte maximální velikost zprávy základního zprostředkovatele služeb soketů Windows. Pokud jsou data příliš dlouhá na to, aby je bylo možné předat prostřednictvím základního poskytovatele služby, žádná data se nepřenesou 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.

Viz také

Platí pro