Socket.BeginSend 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í.
Odesílá data asynchronně do připojeného Socket.
Přetížení
| Name | Description |
|---|---|
| BeginSend(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object) |
Odesílá data asynchronně do připojeného Socket. |
| BeginSend(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object) |
Odesílá data asynchronně do připojeného Socket. |
| BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) |
Odesílá data asynchronně do připojeného Socket. |
| BeginSend(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object) |
Odesílá data asynchronně do připojeného Socket. |
BeginSend(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
Odesílá data asynchronně do připojeného Socket.
public:
IAsyncResult ^ BeginSend(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginSend(System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback? callback, object? state);
public IAsyncResult BeginSend(System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback callback, object state);
member this.BeginSend : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, callback As AsyncCallback, state As Object) As IAsyncResult
Parametry
- buffers
- IList<ArraySegment<Byte>>
Pole typu Byte obsahující data, která se mají odeslat.
- socketFlags
- SocketFlags
Bitové kombinace SocketFlags hodnot.
- callback
- AsyncCallback
Delegát.AsyncCallback
- state
- Object
Objekt, který obsahuje informace o stavu pro tento požadavek.
Návraty
Odkaz IAsyncResult na asynchronní odeslání.
Výjimky
buffers je null.
buffers je prázdný.
Pouze rozhraní .NET Framework a .NET 5 a starší: Při pokusu o přístup k soketu došlo k chybě. Viz část s poznámkami níže.
Ta Socket byla uzavřena.
Poznámky
Důležité
Toto je rozhraní API pro kompatibilitu. Pro nový vývoj nedoporučujeme používat metody APM (Begin* a End*). Místo toho použijte ekvivalenty založené na Taskzákladech.
Můžete předat zpětné volání, které implementuje AsyncCallback , BeginSend aby bylo možné dostávat oznámení o dokončení operace. Všimněte si, že pokud podkladový síťový zásobník dokončí operaci synchronně, bude zpětné volání spuštěno přímo během volání BeginSend. V tomto případě bude vlastnost vrácena CompletedSynchronously nastavena tak, aby IAsyncResult indikovat, true že metoda byla dokončena synchronně.
AsyncState Použijte vlastnost IAsyncResult k získání objektu stavu předaného metoděBeginSend.
Asynchronní BeginSend operace musí být dokončena voláním EndSend metody. Obvykle je metoda vyvolána delegátem AsyncCallback . EndSend zablokuje volající vlákno, dokud se operace nedokončila.
I když jsou určené pro protokoly orientované na připojení, BeginSend funguje také pro protokoly bez připojení za předpokladu, že nejprve zavoláte Connect nebo BeginConnect metodu pro vytvoření výchozího vzdáleného hostitele. Pokud používáte protokol bez připojení a plánujete odesílat data do několika různých hostitelů, měli byste použít BeginSendTo. Je v pořádku použít BeginSendTo i po vytvoření výchozího vzdáleného hostitele s Connect. Výchozího vzdáleného hostitele můžete změnit také před voláním BeginSend jiným voláním nebo ConnectBeginConnect. U protokolů bez připojení musíte mít také 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 BeginSend vyvolají .SocketException
Pokud jako parametr zadáte DontRoute příznak, data, která odesíláte, nebudou socketflags směrována.
Poznámka:
Pokud se zobrazí kód SocketExceptionchyby, použijte SocketException.ErrorCode vlastnost k získání konkrétního kódu chyby.
Poznámka:
Při ukončení vlákna se zruší všechny vstupně-výstupní operace iniciované daným vláknem. Čekající asynchronní operace může selhat, pokud vlákno ukončí před dokončením operace.
Poznámka:
state je instance uživatelem definované třídy.
Poznámka:
Úspěšné dokončení odeslání neznamená, že se data úspěšně doručila. Pokud není v přenosovém systému k dispozici žádné místo vyrovnávací paměti pro uložení přenášených dat, bude odesílání blokovat, pokud není soket umístěn v režimu odblokování.
Poznámka:
Tento člen vypíše informace o trasování, když ve své aplikaci povolíte trasování sítě. Další informace naleznete v tématu Trasování sítě v rozhraní .NET Framework.
Poznámka:
Kontext spuštění (kontext zabezpečení, zosobněný uživatel a kontext volání) se ukládá do mezipaměti pro asynchronní Socket metody. Po prvním použití konkrétního kontextu (konkrétní asynchronní Socket metoda, konkrétní Socket instance a konkrétní zpětné volání), následné použití tohoto kontextu uvidí zlepšení výkonu.
Viz také
- Connect(EndPoint)
- AsyncCallback
- EndSend(IAsyncResult)
- Zařazování delegáta jako metody zpětného volání
- Příklad asynchronního klientského soketu
- Příklad asynchronního serverového soketu
Platí pro
BeginSend(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
Odesílá data asynchronně do připojeného Socket.
public:
IAsyncResult ^ BeginSend(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult? BeginSend(System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback? callback, object? state);
public IAsyncResult BeginSend(System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback callback, object state);
member this.BeginSend : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * SocketError * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, ByRef errorCode As SocketError, callback As AsyncCallback, state As Object) As IAsyncResult
Parametry
- buffers
- IList<ArraySegment<Byte>>
Pole typu Byte obsahující data, která se mají odeslat.
- socketFlags
- SocketFlags
Bitové kombinace SocketFlags hodnot.
- errorCode
- SocketError
Objekt SocketError , který ukládá chybu soketu.
- callback
- AsyncCallback
Delegát.AsyncCallback
- state
- Object
Objekt, který obsahuje informace o stavu pro tento požadavek.
Návraty
Odkaz IAsyncResult na asynchronní odeslání.
Výjimky
buffers je null.
buffers je prázdný.
Pouze rozhraní .NET Framework a .NET 5 a starší: Při pokusu o přístup k soketu došlo k chybě. Viz část s poznámkami níže.
Ta Socket byla uzavřena.
Poznámky
Důležité
Toto je rozhraní API pro kompatibilitu. Pro nový vývoj nedoporučujeme používat metody APM (Begin* a End*). Místo toho použijte ekvivalenty založené na Taskzákladech.
Můžete předat zpětné volání, které implementuje AsyncCallback , BeginSend aby bylo možné dostávat oznámení o dokončení operace. Všimněte si, že pokud podkladový síťový zásobník dokončí operaci synchronně, bude zpětné volání spuštěno přímo během volání BeginSend. V tomto případě bude vlastnost vrácena CompletedSynchronously nastavena tak, aby IAsyncResult indikovat, true že metoda byla dokončena synchronně.
AsyncState Použijte vlastnost IAsyncResult k získání objektu stavu předaného metoděBeginSend.
Asynchronní BeginSend operace musí být dokončena voláním EndSend metody. Obvykle je metoda vyvolána delegátem AsyncCallback . EndSend zablokuje volající vlákno, dokud se operace nedokončila.
I když jsou určené pro protokoly orientované na připojení, BeginSend funguje také pro protokoly bez připojení za předpokladu, že nejprve zavoláte Connect nebo BeginConnect metodu pro vytvoření výchozího vzdáleného hostitele. Pokud používáte protokol bez připojení a plánujete odesílat data do několika různých hostitelů, měli byste použít BeginSendTo. Je v pořádku použít BeginSendTo i po vytvoření výchozího vzdáleného hostitele s Connect. Výchozího vzdáleného hostitele můžete změnit také před voláním BeginSend jiným voláním nebo ConnectBeginConnect. U protokolů bez připojení musíte mít také 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 BeginSend vyvolají .SocketException
Pokud jako parametr zadáte DontRoute příznak, data, která odesíláte, nebudou socketflags směrována.
Poznámka:
Pokud se zobrazí kód SocketExceptionchyby, použijte SocketException.ErrorCode vlastnost k získání konkrétního kódu chyby.
Poznámka:
Při ukončení vlákna se zruší všechny vstupně-výstupní operace iniciované daným vláknem. Čekající asynchronní operace může selhat, pokud vlákno ukončí před dokončením operace.
Poznámka:
state je instance uživatelem definované třídy.
Poznámka:
Úspěšné dokončení odeslání neznamená, že se data úspěšně doručila. Pokud není v přenosovém systému k dispozici žádné místo vyrovnávací paměti pro uložení přenášených dat, bude odesílání blokovat, pokud není soket umístěn v režimu odblokování.
Poznámka:
Tento člen vypíše informace o trasování, když ve své aplikaci povolíte trasování sítě. Další informace naleznete v tématu Trasování sítě v rozhraní .NET Framework.
Poznámka:
Kontext spuštění (kontext zabezpečení, zosobněný uživatel a kontext volání) se ukládá do mezipaměti pro asynchronní Socket metody. Po prvním použití konkrétního kontextu (konkrétní asynchronní Socket metoda, konkrétní Socket instance a konkrétní zpětné volání), následné použití tohoto kontextu uvidí zlepšení výkonu.
Viz také
- Connect(EndPoint)
- AsyncCallback
- EndSend(IAsyncResult)
- Zařazování delegáta jako metody zpětného volání
- Příklad asynchronního klientského soketu
- Příklad asynchronního serverového soketu
Platí pro
BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
Odesílá data asynchronně do připojeného Socket.
public:
IAsyncResult ^ BeginSend(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginSend(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback? callback, object? state);
public IAsyncResult BeginSend(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, AsyncCallback callback, object state);
member this.BeginSend : byte[] * int * int * System.Net.Sockets.SocketFlags * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, callback As AsyncCallback, state As Object) As IAsyncResult
Parametry
- offset
- Int32
Pozice založená na nule v parametru buffer , ve kterém se mají začít odesílat data.
- size
- Int32
Počet bajtů, které se mají odeslat.
- socketFlags
- SocketFlags
Bitové kombinace SocketFlags hodnot.
- callback
- AsyncCallback
Delegát.AsyncCallback
- state
- Object
Objekt, který obsahuje informace o stavu pro tento požadavek.
Návraty
Odkaz IAsyncResult na asynchronní odeslání.
Výjimky
buffer je null.
Pouze rozhraní .NET Framework a .NET 5 a starší: Při pokusu o přístup k soketu došlo k chybě. Viz část s poznámkami níže.
offset je menší než 0.
nebo
offset je menší než délka buffer.
nebo
size je menší než 0.
nebo
size je větší než délka buffer minus hodnota parametru offset .
Ta Socket byla uzavřena.
Poznámky
Důležité
Toto je rozhraní API pro kompatibilitu. Pro nový vývoj nedoporučujeme používat metody APM (Begin* a End*). Místo toho použijte ekvivalenty založené na Taskzákladech.
Můžete předat zpětné volání, které implementuje AsyncCallback , BeginSend aby bylo možné dostávat oznámení o dokončení operace. Všimněte si, že pokud podkladový síťový zásobník dokončí operaci synchronně, bude zpětné volání spuštěno přímo během volání BeginSend. V tomto případě bude vlastnost vrácena CompletedSynchronously nastavena tak, aby IAsyncResult indikovat, true že metoda byla dokončena synchronně.
AsyncState Použijte vlastnost IAsyncResult k získání objektu stavu předaného metoděBeginSend.
Asynchronní BeginSend operace musí být dokončena voláním EndSend metody. Obvykle je metoda vyvolána delegátem AsyncCallback . EndSend zablokuje volající vlákno, dokud se operace nedokončila.
I když jsou určené pro protokoly orientované na připojení, BeginSend funguje také pro protokoly bez připojení za předpokladu, že nejprve zavoláte Connect nebo BeginConnect metodu pro vytvoření výchozího vzdáleného hostitele. Pokud používáte protokol bez připojení a plánujete odesílat data do několika různých hostitelů, měli byste použít BeginSendTo. Je v pořádku použít BeginSendTo i po vytvoření výchozího vzdáleného hostitele s Connect. Výchozího vzdáleného hostitele můžete změnit také před voláním BeginSend jiným voláním nebo ConnectBeginConnect. U protokolů bez připojení musíte mít také 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 BeginSend vyvolají .SocketException
Pokud jako parametr zadáte DontRoute příznak, data, která odesíláte, nebudou socketflags směrována.
Poznámka:
Pokud se zobrazí kód SocketExceptionchyby, použijte SocketException.ErrorCode vlastnost k získání konkrétního kódu chyby.
Poznámka:
Při ukončení vlákna se zruší všechny vstupně-výstupní operace iniciované daným vláknem. Čekající asynchronní operace může selhat, pokud vlákno ukončí před dokončením operace.
Poznámka:
state je instance uživatelem definované třídy.
Poznámka:
Úspěšné dokončení odeslání neznamená, že se data úspěšně doručila. Pokud není v přenosovém systému k dispozici žádné místo vyrovnávací paměti pro uložení přenášených dat, bude odesílání blokovat, pokud není soket umístěn v režimu odblokování.
Poznámka:
Tento člen vypíše informace o trasování, když ve své aplikaci povolíte trasování sítě. Další informace naleznete v tématu Trasování sítě v rozhraní .NET Framework.
Poznámka:
Kontext spuštění (kontext zabezpečení, zosobněný uživatel a kontext volání) se ukládá do mezipaměti pro asynchronní Socket metody. Po prvním použití konkrétního kontextu (konkrétní asynchronní Socket metoda, konkrétní Socket instance a konkrétní zpětné volání), následné použití tohoto kontextu uvidí zlepšení výkonu.
Viz také
- Connect(EndPoint)
- AsyncCallback
- EndSend(IAsyncResult)
- Zařazování delegáta jako metody zpětného volání
- Příklad asynchronního klientského soketu
- Příklad asynchronního serverového soketu
Platí pro
BeginSend(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
- Zdroj:
- Socket.cs
Odesílá data asynchronně do připojeného Socket.
public:
IAsyncResult ^ BeginSend(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult? BeginSend(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback? callback, object? state);
public IAsyncResult BeginSend(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode, AsyncCallback callback, object state);
member this.BeginSend : byte[] * int * int * System.Net.Sockets.SocketFlags * SocketError * AsyncCallback * obj -> IAsyncResult
Public Function BeginSend (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, ByRef errorCode As SocketError, callback As AsyncCallback, state As Object) As IAsyncResult
Parametry
- offset
- Int32
Pozice založená na nule v parametru buffer , ve kterém se mají začít odesílat data.
- size
- Int32
Počet bajtů, které se mají odeslat.
- socketFlags
- SocketFlags
Bitové kombinace SocketFlags hodnot.
- errorCode
- SocketError
Objekt SocketError , který ukládá chybu soketu.
- callback
- AsyncCallback
Delegát.AsyncCallback
- state
- Object
Objekt, který obsahuje informace o stavu pro tento požadavek.
Návraty
Odkaz IAsyncResult na asynchronní odeslání.
Výjimky
buffer je null.
Pouze rozhraní .NET Framework a .NET 5 a starší: Při pokusu o přístup k soketu došlo k chybě. Viz část s poznámkami níže.
offset je menší než 0.
nebo
offset je menší než délka buffer.
nebo
size je menší než 0.
nebo
size je větší než délka buffer minus hodnota parametru offset .
Ta Socket byla uzavřena.
Poznámky
Důležité
Toto je rozhraní API pro kompatibilitu. Pro nový vývoj nedoporučujeme používat metody APM (Begin* a End*). Místo toho použijte ekvivalenty založené na Taskzákladech.
Můžete předat zpětné volání, které implementuje AsyncCallback , BeginSend aby bylo možné dostávat oznámení o dokončení operace. Všimněte si, že pokud podkladový síťový zásobník dokončí operaci synchronně, bude zpětné volání spuštěno přímo během volání BeginSend. V tomto případě bude vlastnost vrácena CompletedSynchronously nastavena tak, aby IAsyncResult indikovat, true že metoda byla dokončena synchronně.
AsyncState Použijte vlastnost IAsyncResult k získání objektu stavu předaného metoděBeginSend.
Asynchronní BeginSend operace musí být dokončena voláním EndSend metody. Obvykle je metoda vyvolána delegátem AsyncCallback . EndSend zablokuje volající vlákno, dokud se operace nedokončila.
I když jsou určené pro protokoly orientované na připojení, BeginSend funguje také pro protokoly bez připojení za předpokladu, že nejprve zavoláte Connect nebo BeginConnect metodu pro vytvoření výchozího vzdáleného hostitele. Pokud používáte protokol bez připojení a plánujete odesílat data do několika různých hostitelů, měli byste použít BeginSendTo. Je v pořádku použít BeginSendTo i po vytvoření výchozího vzdáleného hostitele s Connect. Výchozího vzdáleného hostitele můžete změnit také před voláním BeginSend jiným voláním nebo ConnectBeginConnect. U protokolů bez připojení musíte mít také 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 BeginSend vyvolají .SocketException
Pokud jako parametr zadáte DontRoute příznak, data, která odesíláte, nebudou socketflags směrována.
Poznámka:
Pokud se zobrazí kód SocketExceptionchyby, použijte SocketException.ErrorCode vlastnost k získání konkrétního kódu chyby.
Poznámka:
Při ukončení vlákna se zruší všechny vstupně-výstupní operace iniciované daným vláknem. Čekající asynchronní operace může selhat, pokud vlákno ukončí před dokončením operace.
Poznámka:
state je instance uživatelem definované třídy.
Poznámka:
Úspěšné dokončení odeslání neznamená, že se data úspěšně doručila. Pokud není v přenosovém systému k dispozici žádné místo vyrovnávací paměti pro uložení přenášených dat, bude odesílání blokovat, pokud není soket umístěn v režimu odblokování.
Poznámka:
Tento člen vypíše informace o trasování, když ve své aplikaci povolíte trasování sítě. Další informace naleznete v tématu Trasování sítě v rozhraní .NET Framework.
Poznámka:
Kontext spuštění (kontext zabezpečení, zosobněný uživatel a kontext volání) se ukládá do mezipaměti pro asynchronní Socket metody. Po prvním použití konkrétního kontextu (konkrétní asynchronní Socket metoda, konkrétní Socket instance a konkrétní zpětné volání), následné použití tohoto kontextu uvidí zlepšení výkonu.
Viz také
- Connect(EndPoint)
- AsyncCallback
- EndSend(IAsyncResult)
- Zařazování delegáta jako metody zpětného volání
- Příklad asynchronního klientského soketu
- Příklad asynchronního serverového soketu