Socket.BeginSend Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Verzendt gegevens asynchroon naar een verbonden Socket.
Overloads
| Name | Description |
|---|---|
| BeginSend(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object) |
Verzendt gegevens asynchroon naar een verbonden Socket. |
| BeginSend(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object) |
Verzendt gegevens asynchroon naar een verbonden Socket. |
| BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) |
Verzendt gegevens asynchroon naar een verbonden Socket. |
| BeginSend(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object) |
Verzendt gegevens asynchroon naar een verbonden Socket. |
BeginSend(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)
Verzendt gegevens asynchroon naar een verbonden 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
Parameters
- buffers
- IList<ArraySegment<Byte>>
Een matrix van het type Byte dat de gegevens bevat die moeten worden verzonden.
- socketFlags
- SocketFlags
Een bitsgewijze combinatie van de SocketFlags waarden.
- callback
- AsyncCallback
De AsyncCallback gedelegeerde.
- state
- Object
Een object met statusinformatie voor deze aanvraag.
Retouren
Een IAsyncResult die verwijst naar het asynchrone verzenden.
Uitzonderingen
buffers is null.
buffers is leeg.
alleen .NET Framework: er is een fout opgetreden bij het openen van de socket. Zie de sectie Opmerkingen hieronder.
De Socket is gesloten.
Opmerkingen
Important
Dit is een compatibiliteits-API. Het wordt afgeraden om de APM - (Begin* en End*) methoden voor nieuwe ontwikkeling te gebruiken. Gebruik in plaats daarvan de Taskequivalenten op basis van -.
U kunt een callback doorgeven waarnaar wordt geïmplementeerd AsyncCallbackBeginSend om een melding te ontvangen over de voltooiing van de bewerking. Houd er rekening mee dat als de onderliggende netwerkstack de bewerking synchroon voltooit, de callback inline wordt uitgevoerd, tijdens de aanroep naar BeginSend. In dit geval wordt de CompletedSynchronously eigenschap op de geretourneerde IAsyncResult waarde ingesteld om aan te true geven dat de methode synchroon is voltooid. Gebruik de AsyncState eigenschap van de IAsyncResult functie om het statusobject te verkrijgen dat is doorgegeven aan de BeginSend methode.
De asynchrone BeginSend bewerking moet worden voltooid door de EndSend methode aan te roepen. Normaal gesproken wordt de methode aangeroepen door de AsyncCallback gemachtigde. EndSend blokkeert de aanroepende thread totdat de bewerking is voltooid.
Hoewel deze is bedoeld voor verbindingsgeoriënteerde protocollen, BeginSend werkt dit ook voor verbindingsloze protocollen, mits u eerst de Connect of BeginConnect methode aanroept om een standaard externe host tot stand te brengen. Als u een verbindingsloos protocol gebruikt en gegevens naar verschillende hosts wilt verzenden, moet u dit gebruiken BeginSendTo. Het is oké om te gebruiken BeginSendTo , zelfs nadat u een standaard externe host met Connect. U kunt ook de standaard externe host wijzigen voordat u aanroept BeginSend door een andere aanroep naar Connect of BeginConnect. Met verbindingsloze protocollen moet u er ook voor zorgen dat de grootte van uw buffer niet groter is dan de maximale pakketgrootte van de onderliggende serviceprovider. Als dat het geval is, wordt het datagram niet verzonden en BeginSend wordt er een SocketException.
Als u de DontRoute vlag opgeeft als de socketflags parameter, worden de gegevens die u verzendt, niet gerouteerd.
Note
Als u een SocketExceptionontvangt, gebruikt u de SocketException.ErrorCode eigenschap om de specifieke foutcode te verkrijgen.
Note
Alle I/O die door een bepaalde thread wordt geïnitieerd, wordt geannuleerd wanneer deze thread wordt afgesloten. Een asynchrone bewerking in behandeling kan mislukken als de thread wordt afgesloten voordat de bewerking is voltooid.
Note
state is een instantiëring van een door de gebruiker gedefinieerde klasse.
Note
De geslaagde voltooiing van een verzendbericht geeft niet aan dat de gegevens zijn afgeleverd. Als er geen bufferruimte beschikbaar is in het transportsysteem voor het opslaan van de gegevens die moeten worden verzonden, wordt verzenden geblokkeerd tenzij de socket in de niet-blokkeringsmodus is geplaatst.
Note
Dit lid voert traceringsgegevens uit wanneer u netwerktracering inschakelt in uw toepassing. Zie Network Tracing in .NET Framework voor meer informatie.
Note
De uitvoeringscontext (de beveiligingscontext, de geïmiteerde gebruiker en de aanroepende context) wordt in de cache opgeslagen voor de asynchrone Socket methoden. Na het eerste gebruik van een bepaalde context (een specifieke asynchrone Socket methode, een specifiek Socket exemplaar en een specifieke callback), zien volgende toepassingen van die context een prestatieverbetering.
Zie ook
- Connect(EndPoint)
- AsyncCallback
- EndSend(IAsyncResult)
- Marshaling a Delegate as a Callback Method
- Voorbeeld van asynchrone clientsocket
- Voorbeeld van asynchrone serversocket
Van toepassing op
BeginSend(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)
Verzendt gegevens asynchroon naar een verbonden 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
Parameters
- buffers
- IList<ArraySegment<Byte>>
Een matrix van het type Byte dat de gegevens bevat die moeten worden verzonden.
- socketFlags
- SocketFlags
Een bitsgewijze combinatie van de SocketFlags waarden.
- errorCode
- SocketError
Een SocketError object waarin de socketfout wordt opgeslagen.
- callback
- AsyncCallback
De AsyncCallback gedelegeerde.
- state
- Object
Een object met statusinformatie voor deze aanvraag.
Retouren
Een IAsyncResult die verwijst naar het asynchrone verzenden.
Uitzonderingen
buffers is null.
buffers is leeg.
alleen .NET Framework: er is een fout opgetreden bij het openen van de socket. Zie de sectie Opmerkingen hieronder.
De Socket is gesloten.
Opmerkingen
Important
Dit is een compatibiliteits-API. Het wordt afgeraden om de APM - (Begin* en End*) methoden voor nieuwe ontwikkeling te gebruiken. Gebruik in plaats daarvan de Taskequivalenten op basis van -.
U kunt een callback doorgeven waarnaar wordt geïmplementeerd AsyncCallbackBeginSend om een melding te ontvangen over de voltooiing van de bewerking. Houd er rekening mee dat als de onderliggende netwerkstack de bewerking synchroon voltooit, de callback inline wordt uitgevoerd, tijdens de aanroep naar BeginSend. In dit geval wordt de CompletedSynchronously eigenschap op de geretourneerde IAsyncResult waarde ingesteld om aan te true geven dat de methode synchroon is voltooid. Gebruik de AsyncState eigenschap van de IAsyncResult functie om het statusobject te verkrijgen dat is doorgegeven aan de BeginSend methode.
De asynchrone BeginSend bewerking moet worden voltooid door de EndSend methode aan te roepen. Normaal gesproken wordt de methode aangeroepen door de AsyncCallback gemachtigde. EndSend blokkeert de aanroepende thread totdat de bewerking is voltooid.
Hoewel deze is bedoeld voor verbindingsgeoriënteerde protocollen, BeginSend werkt dit ook voor verbindingsloze protocollen, mits u eerst de Connect of BeginConnect methode aanroept om een standaard externe host tot stand te brengen. Als u een verbindingsloos protocol gebruikt en gegevens naar verschillende hosts wilt verzenden, moet u dit gebruiken BeginSendTo. Het is oké om te gebruiken BeginSendTo , zelfs nadat u een standaard externe host met Connect. U kunt ook de standaard externe host wijzigen voordat u aanroept BeginSend door een andere aanroep naar Connect of BeginConnect. Met verbindingsloze protocollen moet u er ook voor zorgen dat de grootte van uw buffer niet groter is dan de maximale pakketgrootte van de onderliggende serviceprovider. Als dat het geval is, wordt het datagram niet verzonden en BeginSend wordt er een SocketException.
Als u de DontRoute vlag opgeeft als de socketflags parameter, worden de gegevens die u verzendt, niet gerouteerd.
Note
Als u een SocketExceptionontvangt, gebruikt u de SocketException.ErrorCode eigenschap om de specifieke foutcode te verkrijgen.
Note
Alle I/O die door een bepaalde thread wordt geïnitieerd, wordt geannuleerd wanneer deze thread wordt afgesloten. Een asynchrone bewerking in behandeling kan mislukken als de thread wordt afgesloten voordat de bewerking is voltooid.
Note
state is een instantiëring van een door de gebruiker gedefinieerde klasse.
Note
De geslaagde voltooiing van een verzendbericht geeft niet aan dat de gegevens zijn afgeleverd. Als er geen bufferruimte beschikbaar is in het transportsysteem voor het opslaan van de gegevens die moeten worden verzonden, wordt verzenden geblokkeerd tenzij de socket in de niet-blokkeringsmodus is geplaatst.
Note
Dit lid voert traceringsgegevens uit wanneer u netwerktracering inschakelt in uw toepassing. Zie Network Tracing in .NET Framework voor meer informatie.
Note
De uitvoeringscontext (de beveiligingscontext, de geïmiteerde gebruiker en de aanroepende context) wordt in de cache opgeslagen voor de asynchrone Socket methoden. Na het eerste gebruik van een bepaalde context (een specifieke asynchrone Socket methode, een specifiek Socket exemplaar en een specifieke callback), zien volgende toepassingen van die context een prestatieverbetering.
Zie ook
- Connect(EndPoint)
- AsyncCallback
- EndSend(IAsyncResult)
- Marshaling a Delegate as a Callback Method
- Voorbeeld van asynchrone clientsocket
- Voorbeeld van asynchrone serversocket
Van toepassing op
BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)
Verzendt gegevens asynchroon naar een verbonden 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
Parameters
- offset
- Int32
De op nul gebaseerde positie in de buffer parameter waarop gegevens moeten worden verzonden.
- size
- Int32
Het aantal te verzenden bytes.
- socketFlags
- SocketFlags
Een bitsgewijze combinatie van de SocketFlags waarden.
- callback
- AsyncCallback
De AsyncCallback gedelegeerde.
- state
- Object
Een object met statusinformatie voor deze aanvraag.
Retouren
Een IAsyncResult die verwijst naar het asynchrone verzenden.
Uitzonderingen
buffer is null.
alleen .NET Framework: er is een fout opgetreden bij het openen van de socket. Zie de sectie Opmerkingen hieronder.
offset is kleiner dan 0.
– of –
offset is kleiner dan de lengte van buffer.
– of –
size is kleiner dan 0.
– of –
size is groter dan de lengte van buffer min de waarde van de offset parameter.
De Socket is gesloten.
Opmerkingen
Important
Dit is een compatibiliteits-API. Het wordt afgeraden om de APM - (Begin* en End*) methoden voor nieuwe ontwikkeling te gebruiken. Gebruik in plaats daarvan de Taskequivalenten op basis van -.
U kunt een callback doorgeven waarnaar wordt geïmplementeerd AsyncCallbackBeginSend om een melding te ontvangen over de voltooiing van de bewerking. Houd er rekening mee dat als de onderliggende netwerkstack de bewerking synchroon voltooit, de callback inline wordt uitgevoerd, tijdens de aanroep naar BeginSend. In dit geval wordt de CompletedSynchronously eigenschap op de geretourneerde IAsyncResult waarde ingesteld om aan te true geven dat de methode synchroon is voltooid. Gebruik de AsyncState eigenschap van de IAsyncResult functie om het statusobject te verkrijgen dat is doorgegeven aan de BeginSend methode.
De asynchrone BeginSend bewerking moet worden voltooid door de EndSend methode aan te roepen. Normaal gesproken wordt de methode aangeroepen door de AsyncCallback gemachtigde. EndSend blokkeert de aanroepende thread totdat de bewerking is voltooid.
Hoewel deze is bedoeld voor verbindingsgeoriënteerde protocollen, BeginSend werkt dit ook voor verbindingsloze protocollen, mits u eerst de Connect of BeginConnect methode aanroept om een standaard externe host tot stand te brengen. Als u een verbindingsloos protocol gebruikt en gegevens naar verschillende hosts wilt verzenden, moet u dit gebruiken BeginSendTo. Het is oké om te gebruiken BeginSendTo , zelfs nadat u een standaard externe host met Connect. U kunt ook de standaard externe host wijzigen voordat u aanroept BeginSend door een andere aanroep naar Connect of BeginConnect. Met verbindingsloze protocollen moet u er ook voor zorgen dat de grootte van uw buffer niet groter is dan de maximale pakketgrootte van de onderliggende serviceprovider. Als dat het geval is, wordt het datagram niet verzonden en BeginSend wordt er een SocketException.
Als u de DontRoute vlag opgeeft als de socketflags parameter, worden de gegevens die u verzendt, niet gerouteerd.
Note
Als u een SocketExceptionontvangt, gebruikt u de SocketException.ErrorCode eigenschap om de specifieke foutcode te verkrijgen.
Note
Alle I/O die door een bepaalde thread wordt geïnitieerd, wordt geannuleerd wanneer deze thread wordt afgesloten. Een asynchrone bewerking in behandeling kan mislukken als de thread wordt afgesloten voordat de bewerking is voltooid.
Note
state is een instantiëring van een door de gebruiker gedefinieerde klasse.
Note
De geslaagde voltooiing van een verzendbericht geeft niet aan dat de gegevens zijn afgeleverd. Als er geen bufferruimte beschikbaar is in het transportsysteem voor het opslaan van de gegevens die moeten worden verzonden, wordt verzenden geblokkeerd tenzij de socket in de niet-blokkeringsmodus is geplaatst.
Note
Dit lid voert traceringsgegevens uit wanneer u netwerktracering inschakelt in uw toepassing. Zie Network Tracing in .NET Framework voor meer informatie.
Note
De uitvoeringscontext (de beveiligingscontext, de geïmiteerde gebruiker en de aanroepende context) wordt in de cache opgeslagen voor de asynchrone Socket methoden. Na het eerste gebruik van een bepaalde context (een specifieke asynchrone Socket methode, een specifiek Socket exemplaar en een specifieke callback), zien volgende toepassingen van die context een prestatieverbetering.
Zie ook
- Connect(EndPoint)
- AsyncCallback
- EndSend(IAsyncResult)
- Marshaling a Delegate as a Callback Method
- Voorbeeld van asynchrone clientsocket
- Voorbeeld van asynchrone serversocket
Van toepassing op
BeginSend(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)
Verzendt gegevens asynchroon naar een verbonden 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
Parameters
- offset
- Int32
De op nul gebaseerde positie in de buffer parameter waarop gegevens moeten worden verzonden.
- size
- Int32
Het aantal te verzenden bytes.
- socketFlags
- SocketFlags
Een bitsgewijze combinatie van de SocketFlags waarden.
- errorCode
- SocketError
Een SocketError object waarin de socketfout wordt opgeslagen.
- callback
- AsyncCallback
De AsyncCallback gedelegeerde.
- state
- Object
Een object met statusinformatie voor deze aanvraag.
Retouren
Een IAsyncResult die verwijst naar het asynchrone verzenden.
Uitzonderingen
buffer is null.
alleen .NET Framework: er is een fout opgetreden bij het openen van de socket. Zie de sectie Opmerkingen hieronder.
offset is kleiner dan 0.
– of –
offset is kleiner dan de lengte van buffer.
– of –
size is kleiner dan 0.
– of –
size is groter dan de lengte van buffer min de waarde van de offset parameter.
De Socket is gesloten.
Opmerkingen
Important
Dit is een compatibiliteits-API. Het wordt afgeraden om de APM - (Begin* en End*) methoden voor nieuwe ontwikkeling te gebruiken. Gebruik in plaats daarvan de Taskequivalenten op basis van -.
U kunt een callback doorgeven waarnaar wordt geïmplementeerd AsyncCallbackBeginSend om een melding te ontvangen over de voltooiing van de bewerking. Houd er rekening mee dat als de onderliggende netwerkstack de bewerking synchroon voltooit, de callback inline wordt uitgevoerd, tijdens de aanroep naar BeginSend. In dit geval wordt de CompletedSynchronously eigenschap op de geretourneerde IAsyncResult waarde ingesteld om aan te true geven dat de methode synchroon is voltooid. Gebruik de AsyncState eigenschap van de IAsyncResult functie om het statusobject te verkrijgen dat is doorgegeven aan de BeginSend methode.
De asynchrone BeginSend bewerking moet worden voltooid door de EndSend methode aan te roepen. Normaal gesproken wordt de methode aangeroepen door de AsyncCallback gemachtigde. EndSend blokkeert de aanroepende thread totdat de bewerking is voltooid.
Hoewel deze is bedoeld voor verbindingsgeoriënteerde protocollen, BeginSend werkt dit ook voor verbindingsloze protocollen, mits u eerst de Connect of BeginConnect methode aanroept om een standaard externe host tot stand te brengen. Als u een verbindingsloos protocol gebruikt en gegevens naar verschillende hosts wilt verzenden, moet u dit gebruiken BeginSendTo. Het is oké om te gebruiken BeginSendTo , zelfs nadat u een standaard externe host met Connect. U kunt ook de standaard externe host wijzigen voordat u aanroept BeginSend door een andere aanroep naar Connect of BeginConnect. Met verbindingsloze protocollen moet u er ook voor zorgen dat de grootte van uw buffer niet groter is dan de maximale pakketgrootte van de onderliggende serviceprovider. Als dat het geval is, wordt het datagram niet verzonden en BeginSend wordt er een SocketException.
Als u de DontRoute vlag opgeeft als de socketflags parameter, worden de gegevens die u verzendt, niet gerouteerd.
Note
Als u een SocketExceptionontvangt, gebruikt u de SocketException.ErrorCode eigenschap om de specifieke foutcode te verkrijgen.
Note
Alle I/O die door een bepaalde thread wordt geïnitieerd, wordt geannuleerd wanneer deze thread wordt afgesloten. Een asynchrone bewerking in behandeling kan mislukken als de thread wordt afgesloten voordat de bewerking is voltooid.
Note
state is een instantiëring van een door de gebruiker gedefinieerde klasse.
Note
De geslaagde voltooiing van een verzendbericht geeft niet aan dat de gegevens zijn afgeleverd. Als er geen bufferruimte beschikbaar is in het transportsysteem voor het opslaan van de gegevens die moeten worden verzonden, wordt verzenden geblokkeerd tenzij de socket in de niet-blokkeringsmodus is geplaatst.
Note
Dit lid voert traceringsgegevens uit wanneer u netwerktracering inschakelt in uw toepassing. Zie Network Tracing in .NET Framework voor meer informatie.
Note
De uitvoeringscontext (de beveiligingscontext, de geïmiteerde gebruiker en de aanroepende context) wordt in de cache opgeslagen voor de asynchrone Socket methoden. Na het eerste gebruik van een bepaalde context (een specifieke asynchrone Socket methode, een specifiek Socket exemplaar en een specifieke callback), zien volgende toepassingen van die context een prestatieverbetering.
Zie ook
- Connect(EndPoint)
- AsyncCallback
- EndSend(IAsyncResult)
- Marshaling a Delegate as a Callback Method
- Voorbeeld van asynchrone clientsocket
- Voorbeeld van asynchrone serversocket