Socket.BeginSend Methode

Definitie

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.

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

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.

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

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

buffer
Byte[]

Een matrix van het type Byte dat de gegevens bevat die moeten worden verzonden.

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.

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

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

buffer
Byte[]

Een matrix van het type Byte dat de gegevens bevat die moeten worden verzonden.

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.

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

Van toepassing op