Sdílet prostřednictvím


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)

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

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

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

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

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

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

e
SocketAsyncEventArgs

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 .

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:

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.

Viz také

Platí pro