Socket.SendToAsync 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 |
|---|---|
| SendToAsync(SocketAsyncEventArgs) |
Odesílá data asynchronně na konkrétního vzdáleného hostitele. |
| SendToAsync(ArraySegment<Byte>, EndPoint) |
Odešle data určenému vzdálenému hostiteli. |
| SendToAsync(ArraySegment<Byte>, SocketFlags, EndPoint) |
Odešle data určenému vzdálenému hostiteli. |
| SendToAsync(ReadOnlyMemory<Byte>, EndPoint, CancellationToken) |
Odešle data určenému vzdálenému hostiteli. |
| SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, EndPoint, CancellationToken) |
Odešle data určenému vzdálenému hostiteli. |
| SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, SocketAddress, CancellationToken) |
Odešle data do konkrétního koncového bodu pomocí zadaného SocketFlagskoncového bodu . |
SendToAsync(SocketAsyncEventArgs)
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
Odesílá data asynchronně na konkrétního vzdáleného hostitele.
public:
bool SendToAsync(System::Net::Sockets::SocketAsyncEventArgs ^ e);
public bool SendToAsync(System.Net.Sockets.SocketAsyncEventArgs e);
member this.SendToAsync : System.Net.Sockets.SocketAsyncEventArgs -> bool
Public Function SendToAsync (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
Hodnota RemoteEndPoint nemůže být null.
Operace soketu již probíhala pomocí objektu SocketAsyncEventArgs zadaného v parametru e .
Ta Socket byla uzavřena.
Zadaný protokol je orientovaný na připojení, ale Socket zatím není připojený.
Poznámky
Metoda SendToAsync spustí asynchronní operaci odeslání vzdálenému hostiteli zadanému ve SocketAsyncEventArgs.RemoteEndPoint vlastnosti parametru e .
SendToAsync Volání metody umožňuje odesílat data v samostatném vlákně spuštění. I když je tato metoda určená pro protokoly bez připojení, SendToAsync funguje s protokoly bez připojení i s protokoly orientovanými na připojení.
Chcete-li být upozorněni na dokončení, musíte vytvořit metodu zpětného volání, která implementuje delegáta EventHandler<SocketAsyncEventArgs> a připojit zpětné volání k SocketAsyncEventArgs.Completed události.
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 SendToAsync 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.
Pokud používáte protokol orientovaný na připojení, musíte nejprve volat Accept, AcceptAsync, BeginAccept, BeginConnectConnectnebo ConnectAsync metodu. Jinak SendToAsync vyvolá výjimku SocketException. Při použití protokolu SendToAsync orientovaného na připojení bude metoda ignorovat SocketAsyncEventArgs.RemoteEndPoint vlastnost a odeslat data do System.Net.EndPoint zavedené v Accept, AcceptAsync, BeginAccept, BeginConnect, , Connect, , nebo ConnectAsync metoda.
Pokud používáte protokol bez připojení, nemusíte před voláním SendToAsyncnavázat výchozího vzdáleného hostitele s BeginConnectnástrojem , Connectnebo ConnectAsync metodou . Stačí to udělat jenom v případě, že chcete volat BeginSend metody nebo SendAsync metody. Pokud před voláním zavoláte BeginConnect, Connectnebo ConnectAsync metoduSocketAsyncEventArgs.RemoteEndPoint, vlastnost přepíše zadané výchozí vzdáleného hostitele SendToAsyncpouze pro tuto operaci odeslání. Také není nutné volat metodu Bind . V tomto případě přiřadí poskytovatel základní služby nejvhodnější IP adresu místní sítě a číslo portu. Pokud chcete, aby základní poskytovatel služeb vybral bezplatný port, použijte číslo portu nula. Pokud potřebujete identifikovat přiřazenou IP adresu místní sítě a číslo portu, můžete vlastnost použít LocalEndPoint po signálu SocketAsyncEventArgs.Completed události a zavolání přidružených delegátů.
Pokud chcete odesílat data na adresu všesměrového vysílání, musíte nejprve volat metodu SetSocketOption a nastavit možnost soketu na SocketOptionName.Broadcast true. Musíte také mít jistotu, že velikost vyrovnávací paměti nepřekračuje maximální velikost paketů příslušného poskytovatele služeb. Pokud ano, datagram se neodesílají a SendToAsync vyvolají .SocketException
Pokud ve SocketAsyncEventArgs.SocketFlags vlastnosti zadáte příznak DontRoute, nebudou data, která odesíláte, směrována.
U soketů orientovaných na zprávy je třeba věnovat pozornost tomu, aby nepřekročila maximální velikost zprávy podkladového přenosu. Pokud velikost vyrovnávací paměti překročí maximální velikost paketu základního poskytovatele služeb, datagram se neodesílají a SendToAsync vyvolá SocketException. Úspěšné dokončení SendToAsync metody neznamená, že data byla úspěšně doručena.
Viz také
Platí pro
SendToAsync(ArraySegment<Byte>, EndPoint)
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
Odešle data určenému vzdálenému hostiteli.
public:
System::Threading::Tasks::Task<int> ^ SendToAsync(ArraySegment<System::Byte> buffer, System::Net::EndPoint ^ remoteEP);
public System.Threading.Tasks.Task<int> SendToAsync(ArraySegment<byte> buffer, System.Net.EndPoint remoteEP);
member this.SendToAsync : ArraySegment<byte> * System.Net.EndPoint -> System.Threading.Tasks.Task<int>
Public Function SendToAsync (buffer As ArraySegment(Of Byte), remoteEP As EndPoint) As Task(Of Integer)
Parametry
- buffer
- ArraySegment<Byte>
Vyrovnávací paměť pro odesílání dat.
- remoteEP
- EndPoint
Vzdálený hostitel, do kterého chcete data odeslat.
Návraty
Asynchronní úloha, která se dokončí s počtem odeslaných bajtů.
Výjimky
remoteEP je null.
Při pokusu o přístup k soketu došlo k chybě.
Ta Socket byla uzavřena.
Platí pro
SendToAsync(ArraySegment<Byte>, SocketFlags, EndPoint)
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
Odešle data určenému vzdálenému hostiteli.
public:
System::Threading::Tasks::Task<int> ^ SendToAsync(ArraySegment<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags, System::Net::EndPoint ^ remoteEP);
public System.Threading.Tasks.Task<int> SendToAsync(ArraySegment<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEP);
member this.SendToAsync : ArraySegment<byte> * System.Net.Sockets.SocketFlags * System.Net.EndPoint -> System.Threading.Tasks.Task<int>
Public Function SendToAsync (buffer As ArraySegment(Of Byte), socketFlags As SocketFlags, remoteEP As EndPoint) 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.
- remoteEP
- EndPoint
Vzdálený hostitel, do kterého chcete data odeslat.
Návraty
Asynchronní úloha, která se dokončí s počtem odeslaných bajtů.
Výjimky
remoteEP je null.
Při pokusu o přístup k soketu došlo k chybě.
Ta Socket byla uzavřena.
Platí pro
SendToAsync(ReadOnlyMemory<Byte>, EndPoint, CancellationToken)
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
Odešle data určenému vzdálenému hostiteli.
public System.Threading.Tasks.ValueTask<int> SendToAsync(ReadOnlyMemory<byte> buffer, System.Net.EndPoint remoteEP, System.Threading.CancellationToken cancellationToken = default);
member this.SendToAsync : ReadOnlyMemory<byte> * System.Net.EndPoint * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function SendToAsync (buffer As ReadOnlyMemory(Of Byte), remoteEP As EndPoint, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Integer)
Parametry
- buffer
- ReadOnlyMemory<Byte>
Vyrovnávací paměť pro odesílání dat.
- remoteEP
- EndPoint
Vzdálený hostitel, do kterého chcete data 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
remoteEP je null.
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
SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, EndPoint, CancellationToken)
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
Odešle data určenému vzdálenému hostiteli.
public System.Threading.Tasks.ValueTask<int> SendToAsync(ReadOnlyMemory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.EndPoint remoteEP, System.Threading.CancellationToken cancellationToken = default);
member this.SendToAsync : ReadOnlyMemory<byte> * System.Net.Sockets.SocketFlags * System.Net.EndPoint * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function SendToAsync (buffer As ReadOnlyMemory(Of Byte), socketFlags As SocketFlags, remoteEP As EndPoint, 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.
- remoteEP
- EndPoint
Vzdálený hostitel, do kterého chcete data 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
remoteEP je null.
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
SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, SocketAddress, CancellationToken)
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
- Zdroj:
- Socket.Tasks.cs
Odešle data do konkrétního koncového bodu pomocí zadaného SocketFlagskoncového bodu .
public System.Threading.Tasks.ValueTask<int> SendToAsync(ReadOnlyMemory<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, System.Net.SocketAddress socketAddress, System.Threading.CancellationToken cancellationToken = default);
member this.SendToAsync : ReadOnlyMemory<byte> * System.Net.Sockets.SocketFlags * System.Net.SocketAddress * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<int>
Public Function SendToAsync (buffer As ReadOnlyMemory(Of Byte), socketFlags As SocketFlags, socketAddress As SocketAddress, 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 SocketFlags hodnot, které se použijí při odesílání dat.
- socketAddress
- SocketAddress
Představuje SocketAddress cíl 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
socketAddress je null.
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.