Sdílet prostřednictvím


Socket.SendAsync Metoda

Definice

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

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 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 :

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.

Viz také

Platí pro