Socket.BeginSend Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Skickar data asynkront till en ansluten Socket.
Överlagringar
| Name | Description |
|---|---|
| BeginSend(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object) |
Skickar data asynkront till en ansluten Socket. |
| BeginSend(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object) |
Skickar data asynkront till en ansluten Socket. |
| BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) |
Skickar data asynkront till en ansluten Socket. |
| BeginSend(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object) |
Skickar data asynkront till en ansluten Socket. |
BeginSend(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)
Skickar data asynkront till en ansluten 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);
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
Parametrar
- buffers
- IList<ArraySegment<Byte>>
En matris av typen Byte som innehåller de data som ska skickas.
- socketFlags
- SocketFlags
En bitvis kombination av SocketFlags värdena.
- callback
- AsyncCallback
Ombudet AsyncCallback .
- state
- Object
Ett objekt som innehåller tillståndsinformation för den här begäran.
Returer
En IAsyncResult som refererar till den asynkrona sändningen.
Undantag
buffers är null.
buffers är tom.
endast .NET Framework: Ett fel uppstod vid försök att komma åt socketen. Se avsnittet kommentarer nedan.
Har Socket stängts.
Kommentarer
Important
Det här är ett kompatibilitets-API. Vi rekommenderar inte att du använder APM-metoderna (Begin* och End*) för ny utveckling. Använd i stället de Task-baserade motsvarigheterna.
Du kan skicka ett återanrop som implementeras AsyncCallback till BeginSend för att få ett meddelande om att åtgärden har slutförts. Observera att om den underliggande nätverksstacken slutför åtgärden synkront körs återanropet infogat under anropet till BeginSend. I det här fallet CompletedSynchronously anges egenskapen för den returnerade IAsyncResult till för true att indikera att metoden slutfördes synkront.
AsyncState Använd egenskapen för IAsyncResult att hämta tillståndsobjektet som skickas BeginSend till metoden.
Den asynkrona BeginSend åtgärden måste slutföras genom att anropa EndSend metoden. Metoden anropas vanligtvis av ombudet AsyncCallback . EndSend blockerar den anropande tråden tills åtgärden har slutförts.
Även om det är avsett för anslutningsorienterade protokoll fungerar BeginSend även för anslutningslösa protokoll, förutsatt att du först anropar Connect metoden eller BeginConnect för att upprätta en standardvärd. Om du använder ett anslutningslöst protokoll och planerar att skicka data till flera olika värdar bör du använda BeginSendTo. Det är okej att använda BeginSendTo även när du har upprättat en standardvärd med Connect. Du kan också ändra standardvärden innan du anropar BeginSend genom att göra ett annat anrop till Connect eller BeginConnect. Med anslutningslösa protokoll måste du också vara säker på att storleken på bufferten inte överskrider den maximala paketstorleken för den underliggande tjänstleverantören. Om det gör det skickas inte datagrammet och BeginSend genererar en SocketException.
Om du anger DontRoute flaggan som socketflags parameter dirigeras inte de data som du skickar.
Note
Om du får en SocketExceptionanvänder du SocketException.ErrorCode egenskapen för att hämta den specifika felkoden.
Note
Alla I/O som initieras av en viss tråd avbryts när tråden avslutas. En väntande asynkron åtgärd kan misslyckas om tråden avslutas innan åtgärden slutförs.
Note
state är en instansiering av en användardefinierad klass.
Note
Det lyckade slutförandet av en sändning anger inte att data har levererats. Om det inte finns något buffertutrymme i transportsystemet för att lagra de data som ska överföras blockeras sändningen såvida inte socketen har placerats i icke-blockeringsläge.
Note
Den här medlemmen matar ut spårningsinformation när du aktiverar nätverksspårning i ditt program. Mer information finns i Network Tracing in .NET Framework.
Note
Körningskontexten (säkerhetskontexten, den personifierade användaren och den anropande kontexten) cachelagras för de asynkrona Socket metoderna. Efter den första användningen av en viss kontext (en specifik asynkron Socket metod, en specifik Socket instans och en specifik motringning) kommer efterföljande användning av den kontexten att se en prestandaförbättring.
Se även
- Connect(EndPoint)
- AsyncCallback
- EndSend(IAsyncResult)
- Marshaling a Delegate as a Callback Method
- Asynkront klient socketexempel
- Exempel på asynkron server socket
Gäller för
BeginSend(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)
Skickar data asynkront till en ansluten 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);
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
Parametrar
- buffers
- IList<ArraySegment<Byte>>
En matris av typen Byte som innehåller de data som ska skickas.
- socketFlags
- SocketFlags
En bitvis kombination av SocketFlags värdena.
- errorCode
- SocketError
Ett SocketError objekt som lagrar socketfelet.
- callback
- AsyncCallback
Ombudet AsyncCallback .
- state
- Object
Ett objekt som innehåller tillståndsinformation för den här begäran.
Returer
En IAsyncResult som refererar till den asynkrona sändningen.
Undantag
buffers är null.
buffers är tom.
endast .NET Framework: Ett fel uppstod vid försök att komma åt socketen. Se avsnittet kommentarer nedan.
Har Socket stängts.
Kommentarer
Important
Det här är ett kompatibilitets-API. Vi rekommenderar inte att du använder APM-metoderna (Begin* och End*) för ny utveckling. Använd i stället de Task-baserade motsvarigheterna.
Du kan skicka ett återanrop som implementeras AsyncCallback till BeginSend för att få ett meddelande om att åtgärden har slutförts. Observera att om den underliggande nätverksstacken slutför åtgärden synkront körs återanropet infogat under anropet till BeginSend. I det här fallet CompletedSynchronously anges egenskapen för den returnerade IAsyncResult till för true att indikera att metoden slutfördes synkront.
AsyncState Använd egenskapen för IAsyncResult att hämta tillståndsobjektet som skickas BeginSend till metoden.
Den asynkrona BeginSend åtgärden måste slutföras genom att anropa EndSend metoden. Metoden anropas vanligtvis av ombudet AsyncCallback . EndSend blockerar den anropande tråden tills åtgärden har slutförts.
Även om det är avsett för anslutningsorienterade protokoll fungerar BeginSend även för anslutningslösa protokoll, förutsatt att du först anropar Connect metoden eller BeginConnect för att upprätta en standardvärd. Om du använder ett anslutningslöst protokoll och planerar att skicka data till flera olika värdar bör du använda BeginSendTo. Det är okej att använda BeginSendTo även när du har upprättat en standardvärd med Connect. Du kan också ändra standardvärden innan du anropar BeginSend genom att göra ett annat anrop till Connect eller BeginConnect. Med anslutningslösa protokoll måste du också vara säker på att storleken på bufferten inte överskrider den maximala paketstorleken för den underliggande tjänstleverantören. Om det gör det skickas inte datagrammet och BeginSend genererar en SocketException.
Om du anger DontRoute flaggan som socketflags parameter dirigeras inte de data som du skickar.
Note
Om du får en SocketExceptionanvänder du SocketException.ErrorCode egenskapen för att hämta den specifika felkoden.
Note
Alla I/O som initieras av en viss tråd avbryts när tråden avslutas. En väntande asynkron åtgärd kan misslyckas om tråden avslutas innan åtgärden slutförs.
Note
state är en instansiering av en användardefinierad klass.
Note
Det lyckade slutförandet av en sändning anger inte att data har levererats. Om det inte finns något buffertutrymme i transportsystemet för att lagra de data som ska överföras blockeras sändningen såvida inte socketen har placerats i icke-blockeringsläge.
Note
Den här medlemmen matar ut spårningsinformation när du aktiverar nätverksspårning i ditt program. Mer information finns i Network Tracing in .NET Framework.
Note
Körningskontexten (säkerhetskontexten, den personifierade användaren och den anropande kontexten) cachelagras för de asynkrona Socket metoderna. Efter den första användningen av en viss kontext (en specifik asynkron Socket metod, en specifik Socket instans och en specifik motringning) kommer efterföljande användning av den kontexten att se en prestandaförbättring.
Se även
- Connect(EndPoint)
- AsyncCallback
- EndSend(IAsyncResult)
- Marshaling a Delegate as a Callback Method
- Asynkront klient socketexempel
- Exempel på asynkron server socket
Gäller för
BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)
Skickar data asynkront till en ansluten 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);
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
Parametrar
- offset
- Int32
Den nollbaserade positionen i parametern buffer där data ska börja skickas.
- size
- Int32
Antalet byte som ska skickas.
- socketFlags
- SocketFlags
En bitvis kombination av SocketFlags värdena.
- callback
- AsyncCallback
Ombudet AsyncCallback .
- state
- Object
Ett objekt som innehåller tillståndsinformation för den här begäran.
Returer
En IAsyncResult som refererar till den asynkrona sändningen.
Undantag
buffer är null.
endast .NET Framework: Ett fel uppstod vid försök att komma åt socketen. Se avsnittet kommentarer nedan.
offset är mindre än 0.
-eller-
offset är mindre än längden på buffer.
-eller-
size är mindre än 0.
-eller-
size är större än längden buffer på minus värdet för parametern offset .
Har Socket stängts.
Kommentarer
Important
Det här är ett kompatibilitets-API. Vi rekommenderar inte att du använder APM-metoderna (Begin* och End*) för ny utveckling. Använd i stället de Task-baserade motsvarigheterna.
Du kan skicka ett återanrop som implementeras AsyncCallback till BeginSend för att få ett meddelande om att åtgärden har slutförts. Observera att om den underliggande nätverksstacken slutför åtgärden synkront körs återanropet infogat under anropet till BeginSend. I det här fallet CompletedSynchronously anges egenskapen för den returnerade IAsyncResult till för true att indikera att metoden slutfördes synkront.
AsyncState Använd egenskapen för IAsyncResult att hämta tillståndsobjektet som skickas BeginSend till metoden.
Den asynkrona BeginSend åtgärden måste slutföras genom att anropa EndSend metoden. Metoden anropas vanligtvis av ombudet AsyncCallback . EndSend blockerar den anropande tråden tills åtgärden har slutförts.
Även om det är avsett för anslutningsorienterade protokoll fungerar BeginSend även för anslutningslösa protokoll, förutsatt att du först anropar Connect metoden eller BeginConnect för att upprätta en standardvärd. Om du använder ett anslutningslöst protokoll och planerar att skicka data till flera olika värdar bör du använda BeginSendTo. Det är okej att använda BeginSendTo även när du har upprättat en standardvärd med Connect. Du kan också ändra standardvärden innan du anropar BeginSend genom att göra ett annat anrop till Connect eller BeginConnect. Med anslutningslösa protokoll måste du också vara säker på att storleken på bufferten inte överskrider den maximala paketstorleken för den underliggande tjänstleverantören. Om det gör det skickas inte datagrammet och BeginSend genererar en SocketException.
Om du anger DontRoute flaggan som socketflags parameter dirigeras inte de data som du skickar.
Note
Om du får en SocketExceptionanvänder du SocketException.ErrorCode egenskapen för att hämta den specifika felkoden.
Note
Alla I/O som initieras av en viss tråd avbryts när tråden avslutas. En väntande asynkron åtgärd kan misslyckas om tråden avslutas innan åtgärden slutförs.
Note
state är en instansiering av en användardefinierad klass.
Note
Det lyckade slutförandet av en sändning anger inte att data har levererats. Om det inte finns något buffertutrymme i transportsystemet för att lagra de data som ska överföras blockeras sändningen såvida inte socketen har placerats i icke-blockeringsläge.
Note
Den här medlemmen matar ut spårningsinformation när du aktiverar nätverksspårning i ditt program. Mer information finns i Network Tracing in .NET Framework.
Note
Körningskontexten (säkerhetskontexten, den personifierade användaren och den anropande kontexten) cachelagras för de asynkrona Socket metoderna. Efter den första användningen av en viss kontext (en specifik asynkron Socket metod, en specifik Socket instans och en specifik motringning) kommer efterföljande användning av den kontexten att se en prestandaförbättring.
Se även
- Connect(EndPoint)
- AsyncCallback
- EndSend(IAsyncResult)
- Marshaling a Delegate as a Callback Method
- Asynkront klient socketexempel
- Exempel på asynkron server socket
Gäller för
BeginSend(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)
Skickar data asynkront till en ansluten 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);
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
Parametrar
- offset
- Int32
Den nollbaserade positionen i parametern buffer där data ska börja skickas.
- size
- Int32
Antalet byte som ska skickas.
- socketFlags
- SocketFlags
En bitvis kombination av SocketFlags värdena.
- errorCode
- SocketError
Ett SocketError objekt som lagrar socketfelet.
- callback
- AsyncCallback
Ombudet AsyncCallback .
- state
- Object
Ett objekt som innehåller tillståndsinformation för den här begäran.
Returer
En IAsyncResult som refererar till den asynkrona sändningen.
Undantag
buffer är null.
endast .NET Framework: Ett fel uppstod vid försök att komma åt socketen. Se avsnittet kommentarer nedan.
offset är mindre än 0.
-eller-
offset är mindre än längden på buffer.
-eller-
size är mindre än 0.
-eller-
size är större än längden buffer på minus värdet för parametern offset .
Har Socket stängts.
Kommentarer
Important
Det här är ett kompatibilitets-API. Vi rekommenderar inte att du använder APM-metoderna (Begin* och End*) för ny utveckling. Använd i stället de Task-baserade motsvarigheterna.
Du kan skicka ett återanrop som implementeras AsyncCallback till BeginSend för att få ett meddelande om att åtgärden har slutförts. Observera att om den underliggande nätverksstacken slutför åtgärden synkront körs återanropet infogat under anropet till BeginSend. I det här fallet CompletedSynchronously anges egenskapen för den returnerade IAsyncResult till för true att indikera att metoden slutfördes synkront.
AsyncState Använd egenskapen för IAsyncResult att hämta tillståndsobjektet som skickas BeginSend till metoden.
Den asynkrona BeginSend åtgärden måste slutföras genom att anropa EndSend metoden. Metoden anropas vanligtvis av ombudet AsyncCallback . EndSend blockerar den anropande tråden tills åtgärden har slutförts.
Även om det är avsett för anslutningsorienterade protokoll fungerar BeginSend även för anslutningslösa protokoll, förutsatt att du först anropar Connect metoden eller BeginConnect för att upprätta en standardvärd. Om du använder ett anslutningslöst protokoll och planerar att skicka data till flera olika värdar bör du använda BeginSendTo. Det är okej att använda BeginSendTo även när du har upprättat en standardvärd med Connect. Du kan också ändra standardvärden innan du anropar BeginSend genom att göra ett annat anrop till Connect eller BeginConnect. Med anslutningslösa protokoll måste du också vara säker på att storleken på bufferten inte överskrider den maximala paketstorleken för den underliggande tjänstleverantören. Om det gör det skickas inte datagrammet och BeginSend genererar en SocketException.
Om du anger DontRoute flaggan som socketflags parameter dirigeras inte de data som du skickar.
Note
Om du får en SocketExceptionanvänder du SocketException.ErrorCode egenskapen för att hämta den specifika felkoden.
Note
Alla I/O som initieras av en viss tråd avbryts när tråden avslutas. En väntande asynkron åtgärd kan misslyckas om tråden avslutas innan åtgärden slutförs.
Note
state är en instansiering av en användardefinierad klass.
Note
Det lyckade slutförandet av en sändning anger inte att data har levererats. Om det inte finns något buffertutrymme i transportsystemet för att lagra de data som ska överföras blockeras sändningen såvida inte socketen har placerats i icke-blockeringsläge.
Note
Den här medlemmen matar ut spårningsinformation när du aktiverar nätverksspårning i ditt program. Mer information finns i Network Tracing in .NET Framework.
Note
Körningskontexten (säkerhetskontexten, den personifierade användaren och den anropande kontexten) cachelagras för de asynkrona Socket metoderna. Efter den första användningen av en viss kontext (en specifik asynkron Socket metod, en specifik Socket instans och en specifik motringning) kommer efterföljande användning av den kontexten att se en prestandaförbättring.
Se även
- Connect(EndPoint)
- AsyncCallback
- EndSend(IAsyncResult)
- Marshaling a Delegate as a Callback Method
- Asynkront klient socketexempel
- Exempel på asynkron server socket