Socket.Send Methode

Definitie

Hiermee worden gegevens verzonden naar een verbonden Socket.

Overloads

Name Description
Send(Byte[])

Hiermee worden gegevens verzonden naar een verbonden Socket.

Send(Byte[], Int32, Int32, SocketFlags, SocketError)

Verzendt het opgegeven aantal bytes aan gegevens naar een verbonden Socket, beginnend bij de opgegeven offset en met behulp van de opgegeven SocketFlags.

Send(Byte[], Int32, Int32, SocketFlags)

Verzendt het opgegeven aantal bytes aan gegevens naar een verbonden Socket, beginnend bij de opgegeven offset en met behulp van de opgegeven SocketFlags.

Send(IList<ArraySegment<Byte>>, SocketFlags, SocketError)

Hiermee wordt de set buffers in de lijst verzonden naar een verbonden Socket, met behulp van de opgegeven SocketFlags.

Send(Byte[], Int32, SocketFlags)

Hiermee wordt het opgegeven aantal bytes aan gegevens naar een verbonden verzonden Socket, met behulp van de opgegeven SocketFlags.

Send(ReadOnlySpan<Byte>, SocketFlags, SocketError)

Hiermee worden gegevens verzonden naar een verbonden verbinding Socket met behulp van de opgegeven SocketFlags.

Send(IList<ArraySegment<Byte>>, SocketFlags)

Hiermee wordt de set buffers in de lijst verzonden naar een verbonden Socket, met behulp van de opgegeven SocketFlags.

Send(Byte[], SocketFlags)

Hiermee worden gegevens verzonden naar een verbonden verbinding Socket met behulp van de opgegeven SocketFlags.

Send(ReadOnlySpan<Byte>)

Hiermee worden gegevens verzonden naar een verbonden Socket.

Send(IList<ArraySegment<Byte>>)

Hiermee wordt de set buffers in de lijst verzonden naar een verbonden Socket.

Send(ReadOnlySpan<Byte>, SocketFlags)

Hiermee worden gegevens verzonden naar een verbonden verbinding Socket met behulp van de opgegeven SocketFlags.

Send(Byte[])

Hiermee worden gegevens verzonden naar een verbonden Socket.

public:
 int Send(cli::array <System::Byte> ^ buffer);
public int Send(byte[] buffer);
member this.Send : byte[] -> int
Public Function Send (buffer As Byte()) As Integer

Parameters

buffer
Byte[]

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

Retouren

Het aantal bytes dat naar de Socket.

Uitzonderingen

buffer is null.

Er is een fout opgetreden bij het openen van de socket.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe gegevens worden verzonden op een verbonden Socket.

// Displays sending with a connected socket
// using the overload that takes a buffer.
public static int SendReceiveTest1(Socket server)
{
    byte[] msg = Encoding.UTF8.GetBytes("This is a test");
    byte[] bytes = new byte[256];
    try
    {
        // Blocks until send returns.
        int i = server.Send(msg);
        Console.WriteLine("Sent {0} bytes.", i);

        // Get reply from the server.
        i = server.Receive(bytes);
        Console.WriteLine(Encoding.UTF8.GetString(bytes));
    }
    catch (SocketException e)
    {
        Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode);
        return (e.ErrorCode);
    }
    return 0;
}
' Displays sending with a connected socket
' using the overload that takes a buffer.
Public Shared Function SendReceiveTest1(ByVal server As Socket) As Integer 
    Dim msg As Byte() = Encoding.UTF8.GetBytes("This is a test")
    Dim bytes(255) As Byte
    Try
        ' Blocks until send returns.
        Dim i As Integer = server.Send(msg)
        Console.WriteLine("Sent {0} bytes.", i)
        
        ' Get reply from the server.
        i = server.Receive(bytes)
        Console.WriteLine(Encoding.UTF8.GetString(bytes))
    Catch e As SocketException
        Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode)
        Return e.ErrorCode
    End Try
    Return 0

End Function 'SendReceiveTest1

Opmerkingen

Send verzendt synchroon gegevens naar de externe host die is opgegeven in de Connect of Accept methode en retourneert het aantal verzonden bytes. Send kan worden gebruikt voor zowel verbindingsgeoriënteerde als verbindingsloze protocollen.

Voor deze overbelasting is een buffer vereist die de gegevens bevat die u wilt verzenden. De SocketFlags waarde wordt standaard ingesteld op 0, de bufferverschil is standaard ingesteld op 0 en het aantal bytes dat standaardwaarden naar de grootte van de buffer moet verzenden.

Als u een verbindingsloos protocol gebruikt, moet u aanroepen voordat u deze methode aanroept Connect of Send een SocketException. Als u een verbindingsgeoriënteerd protocol gebruikt, moet u een Connect externe hostverbinding tot stand brengen of gebruiken Accept om een binnenkomende verbinding te accepteren.

Als u een verbindingsloos protocol gebruikt en gegevens wilt verzenden naar verschillende hosts, moet u de SendTo methode gebruiken. Als u de SendTo methode niet gebruikt, moet u aanroepen Connect voordat elke aanroep naar Send. U kunt zelfs gebruiken SendTo nadat u een standaard externe host hebt ingesteld met Connect. U kunt ook de standaard externe host wijzigen voordat u aanroept Send door een andere aanroep uit te voeren.Connect

Als u een verbindingsgeoriënteerd protocol gebruikt, Send wordt dit geblokkeerd totdat alle bytes in de buffer worden verzonden, tenzij er een time-out is ingesteld met behulp van Socket.SendTimeout. Als de time-outwaarde is overschreden, genereert de Send aanroep een SocketException. In de niet-blokkeringsmodus kan het voltooien, Send zelfs als er minder dan het aantal bytes in de buffer wordt verzonden. Het is de verantwoordelijkheid van uw toepassing om het aantal verzonden bytes bij te houden en de bewerking opnieuw uit te voeren totdat de toepassing de bytes in de buffer verzendt. Er is ook geen garantie dat de gegevens die u verzendt, onmiddellijk in het netwerk worden weergegeven. Om de netwerkefficiëntie te verhogen, kan het onderliggende systeem de overdracht vertragen totdat een aanzienlijke hoeveelheid uitgaande gegevens wordt verzameld. Een geslaagde voltooiing van de Send methode betekent dat het onderliggende systeem ruimte heeft gehad om uw gegevens te bufferen voor een netwerk verzenden.

Note

Als u een SocketExceptionontvangt, gebruikt u de SocketException.ErrorCode eigenschap om de specifieke foutcode te verkrijgen. Nadat u deze code hebt verkregen, raadpleegt u de Windows Sockets versie 2 API-foutcode documentatie voor een gedetailleerde beschrijving van de fout.

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.

Zie ook

Van toepassing op

Send(Byte[], Int32, Int32, SocketFlags, SocketError)

Verzendt het opgegeven aantal bytes aan gegevens naar een verbonden Socket, beginnend bij de opgegeven offset en met behulp van de opgegeven SocketFlags.

public:
 int Send(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int Send(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode);
member this.Send : byte[] * int * int * System.Net.Sockets.SocketFlags * SocketError -> int
Public Function Send (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, ByRef errorCode As SocketError) As Integer

Parameters

buffer
Byte[]

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

offset
Int32

De positie in de gegevensbuffer 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.

Retouren

Het aantal bytes dat naar de Socket.

Uitzonderingen

buffer is null.

offset is kleiner dan 0.

– of –

offset is groter 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.

socketFlags is geen geldige combinatie van waarden.

– of –

Er treedt een fout op in het besturingssysteem tijdens het openen van de Socket.

Voorbeelden

Het volgende codevoorbeeld geeft de gegevensbuffer, een offset, een grootte en SocketFlags voor het verzenden van gegevens naar een verbonden Socket.

// Displays sending with a connected socket
// using the overload that takes a buffer, offset, message size, and socket flags.
public static int SendReceiveTest4(Socket server)
{
    byte[] msg = Encoding.UTF8.GetBytes("This is a test");
    byte[] bytes = new byte[256];
    try
    {
        // Blocks until send returns.
        int byteCount = server.Send(msg, 0, msg.Length, SocketFlags.None);
        Console.WriteLine("Sent {0} bytes.", byteCount);

        // Get reply from the server.
        byteCount = server.Receive(bytes, 0, bytes.Length, SocketFlags.None);

        if (byteCount > 0)
            Console.WriteLine(Encoding.UTF8.GetString(bytes, 0, byteCount));
    }
    catch (SocketException e)
    {
        Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode);
        return (e.ErrorCode);
    }
    return 0;
}
' Displays sending with a connected socket
' using the overload that takes a buffer, offset, message size, and socket flags.
Public Shared Function SendReceiveTest4(ByVal server As Socket) As Integer 
    Dim msg As Byte() = Encoding.UTF8.GetBytes("This is a test")
    Dim bytes(255) As Byte
    Try
        ' Blocks until send returns.
        Dim byteCount As Integer = server.Send(msg, 0, msg.Length, SocketFlags.None)
        Console.WriteLine("Sent {0} bytes.", byteCount)
        
        ' Get reply from the server.
        byteCount = server.Receive(bytes, 0, server.Available, SocketFlags.None)
        
        If byteCount > 0 Then
            Console.WriteLine(Encoding.UTF8.GetString(bytes))
        End If
    Catch e As SocketException
        Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode)
        Return e.ErrorCode
    End Try
    Return 0

End Function 'SendReceiveTest4

Opmerkingen

Send verzendt synchroon gegevens naar de externe host die is opgegeven in de Connect of Accept methode en retourneert het aantal verzonden bytes. Send kan worden gebruikt voor zowel verbindingsgeoriënteerde als verbindingsloze protocollen.

Als u bij deze overbelasting de DontRoute vlag opgeeft als parameter socketflags , worden de gegevens die u verzendt, niet gerouteerd.

Als u een verbindingsloos protocol gebruikt, moet u aanroepen voordat u deze methode aanroept Connect of Send een SocketException. Als u een verbindingsgeoriënteerd protocol gebruikt, moet u een Connect externe hostverbinding tot stand brengen of gebruiken Accept om een binnenkomende verbinding te accepteren.

Als u een verbindingsloos protocol gebruikt en gegevens naar verschillende hosts wilt verzenden, moet u dit gebruiken SendTo. Als u niet gebruikt SendTo, moet u bellen Connect voordat elke oproep naar Send. Het is oké om te gebruiken SendTo , zelfs nadat u een standaard externe host met Connect. U kunt ook de standaard externe host wijzigen voordat u aanroept Send door een andere aanroep uit te voeren.Connect

U moet er ook voor zorgen dat de grootte niet groter is dan de maximale pakketgrootte van de onderliggende serviceprovider. Als dat het geval is, wordt het datagram niet verzonden en Send wordt er een SocketException.

Als u een verbindingsgeoriënteerd protocol gebruikt, Send wordt dit geblokkeerd totdat het aangevraagde aantal bytes wordt verzonden, tenzij er een time-out is ingesteld met behulp van Socket.SendTimeout. Als de time-outwaarde is overschreden, genereert de Send aanroep een SocketException. In de niet-blokkeringsmodus kan dit worden voltooid, Send zelfs als er minder dan het aantal bytes wordt verzonden dat u aanvraagt. Het is de verantwoordelijkheid van uw toepassing om het aantal verzonden bytes bij te houden en de bewerking opnieuw uit te voeren totdat de toepassing het aangevraagde aantal bytes verzendt. Er is ook geen garantie dat de gegevens die u verzendt, onmiddellijk in het netwerk worden weergegeven. Om de netwerkefficiëntie te verhogen, kan het onderliggende systeem de overdracht vertragen totdat een aanzienlijke hoeveelheid uitgaande gegevens wordt verzameld. Een geslaagde voltooiing van de Send methode betekent dat het onderliggende systeem ruimte heeft gehad om uw gegevens te bufferen voor een netwerk verzenden.

Note

Als u een SocketExceptionontvangt, gebruikt u de SocketException.ErrorCode eigenschap om de specifieke foutcode te verkrijgen. Nadat u deze code hebt verkregen, raadpleegt u de Windows Sockets versie 2 API-foutcode documentatie voor een gedetailleerde beschrijving van de fout.

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.

Zie ook

Van toepassing op

Send(Byte[], Int32, Int32, SocketFlags)

Verzendt het opgegeven aantal bytes aan gegevens naar een verbonden Socket, beginnend bij de opgegeven offset en met behulp van de opgegeven SocketFlags.

public:
 int Send(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags);
public int Send(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags);
member this.Send : byte[] * int * int * System.Net.Sockets.SocketFlags -> int
Public Function Send (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags) As Integer

Parameters

buffer
Byte[]

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

offset
Int32

De positie in de gegevensbuffer waarop gegevens moeten worden verzonden.

size
Int32

Het aantal te verzenden bytes.

socketFlags
SocketFlags

Een bitsgewijze combinatie van de SocketFlags waarden.

Retouren

Het aantal bytes dat naar de Socket.

Uitzonderingen

buffer is null.

offset is kleiner dan 0.

– of –

offset is groter 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.

socketFlags is geen geldige combinatie van waarden.

– of –

Er treedt een fout op in het besturingssysteem tijdens het openen van de Socket.

Voorbeelden

Het volgende codevoorbeeld geeft de gegevensbuffer, een offset, een grootte en SocketFlags voor het verzenden van gegevens naar een verbonden Socket.

// Displays sending with a connected socket
// using the overload that takes a buffer, offset, message size, and socket flags.
public static int SendReceiveTest4(Socket server)
{
    byte[] msg = Encoding.UTF8.GetBytes("This is a test");
    byte[] bytes = new byte[256];
    try
    {
        // Blocks until send returns.
        int byteCount = server.Send(msg, 0, msg.Length, SocketFlags.None);
        Console.WriteLine("Sent {0} bytes.", byteCount);

        // Get reply from the server.
        byteCount = server.Receive(bytes, 0, bytes.Length, SocketFlags.None);

        if (byteCount > 0)
            Console.WriteLine(Encoding.UTF8.GetString(bytes, 0, byteCount));
    }
    catch (SocketException e)
    {
        Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode);
        return (e.ErrorCode);
    }
    return 0;
}
' Displays sending with a connected socket
' using the overload that takes a buffer, offset, message size, and socket flags.
Public Shared Function SendReceiveTest4(ByVal server As Socket) As Integer 
    Dim msg As Byte() = Encoding.UTF8.GetBytes("This is a test")
    Dim bytes(255) As Byte
    Try
        ' Blocks until send returns.
        Dim byteCount As Integer = server.Send(msg, 0, msg.Length, SocketFlags.None)
        Console.WriteLine("Sent {0} bytes.", byteCount)
        
        ' Get reply from the server.
        byteCount = server.Receive(bytes, 0, server.Available, SocketFlags.None)
        
        If byteCount > 0 Then
            Console.WriteLine(Encoding.UTF8.GetString(bytes))
        End If
    Catch e As SocketException
        Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode)
        Return e.ErrorCode
    End Try
    Return 0

End Function 'SendReceiveTest4

Opmerkingen

Send verzendt synchroon gegevens naar de externe host die is opgegeven in de Connect of Accept methode en retourneert het aantal verzonden bytes. Send kan worden gebruikt voor zowel verbindingsgeoriënteerde als verbindingsloze protocollen.

Als u bij deze overbelasting de DontRoute vlag opgeeft als parameter socketflags , worden de gegevens die u verzendt, niet gerouteerd.

Als u een verbindingsloos protocol gebruikt, moet u aanroepen voordat u deze methode aanroept Connect of Send een SocketException. Als u een verbindingsgeoriënteerd protocol gebruikt, moet u een Connect externe hostverbinding tot stand brengen of gebruiken Accept om een binnenkomende verbinding te accepteren.

Als u een verbindingsloos protocol gebruikt en gegevens naar verschillende hosts wilt verzenden, moet u dit gebruiken SendTo. Als u niet gebruikt SendTo, moet u bellen Connect voordat elke oproep naar Send. Het is oké om te gebruiken SendTo , zelfs nadat u een standaard externe host met Connect. U kunt ook de standaard externe host wijzigen voordat u aanroept Send door een andere aanroep uit te voeren.Connect

U moet er ook voor zorgen dat de grootte niet groter is dan de maximale pakketgrootte van de onderliggende serviceprovider. Als dat het geval is, wordt het datagram niet verzonden en Send wordt er een SocketException.

Als u een verbindingsgeoriënteerd protocol gebruikt, Send wordt dit geblokkeerd totdat het aangevraagde aantal bytes wordt verzonden, tenzij er een time-out is ingesteld met behulp van Socket.SendTimeout. Als de time-outwaarde is overschreden, genereert de Send aanroep een SocketException. In de niet-blokkeringsmodus kan dit worden voltooid, Send zelfs als er minder dan het aantal bytes wordt verzonden dat u aanvraagt. Het is de verantwoordelijkheid van uw toepassing om het aantal verzonden bytes bij te houden en de bewerking opnieuw uit te voeren totdat de toepassing het aangevraagde aantal bytes verzendt. Er is ook geen garantie dat de gegevens die u verzendt, onmiddellijk in het netwerk worden weergegeven. Om de netwerkefficiëntie te verhogen, kan het onderliggende systeem de overdracht vertragen totdat een aanzienlijke hoeveelheid uitgaande gegevens wordt verzameld. Een geslaagde voltooiing van de Send methode betekent dat het onderliggende systeem ruimte heeft gehad om uw gegevens te bufferen voor een netwerk verzenden.

Note

Als u een SocketExceptionontvangt, gebruikt u de SocketException.ErrorCode eigenschap om de specifieke foutcode te verkrijgen. Nadat u deze code hebt verkregen, raadpleegt u de Windows Sockets versie 2 API-foutcode documentatie voor een gedetailleerde beschrijving van de fout.

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.

Zie ook

Van toepassing op

Send(IList<ArraySegment<Byte>>, SocketFlags, SocketError)

Hiermee wordt de set buffers in de lijst verzonden naar een verbonden Socket, met behulp van de opgegeven SocketFlags.

public:
 int Send(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int Send(System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode);
member this.Send : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * SocketError -> int
Public Function Send (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, ByRef errorCode As SocketError) As Integer

Parameters

buffers
IList<ArraySegment<Byte>>

Een lijst met ArraySegment<T>s 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.

Retouren

Het aantal bytes dat naar de Socket.

Uitzonderingen

buffers is null.

buffers is leeg.

Er is een fout opgetreden bij het openen van de socket.

Opmerkingen

Deze overbelasting vereist ten minste één buffer die de gegevens bevat die u wilt verzenden. De SocketFlags waarde wordt standaard ingesteld op 0. Als u de DontRoute vlag opgeeft als de socketFlags parameter, worden de gegevens die u verzendt, niet gerouteerd.

Als u een verbindingsloos protocol gebruikt, moet u aanroepen voordat u deze methode aanroept Connect of Send een SocketException. Als u een verbindingsgeoriënteerd protocol gebruikt, moet u een Connect externe hostverbinding tot stand brengen of gebruiken Accept om een binnenkomende verbinding te accepteren.

Als u een verbindingsloos protocol gebruikt en gegevens wilt verzenden naar verschillende hosts, moet u de SendTo methode gebruiken. Als u de SendTo methode niet gebruikt, moet u aanroepen Connect voordat elke aanroep naar Send. U kunt zelfs gebruiken SendTo nadat u een standaard externe host hebt ingesteld met Connect. U kunt ook de standaard externe host wijzigen voordat u aanroept Send door een andere aanroep uit te voeren.Connect

Als u een verbindingsgeoriënteerd protocol gebruikt, Send wordt dit geblokkeerd totdat alle bytes in de buffer worden verzonden, tenzij er een time-out is ingesteld met behulp van Socket.SendTimeout. Als de time-outwaarde is overschreden, genereert de Send aanroep een SocketException. In de niet-blokkerende modus kan het voltooien, Send zelfs als er minder dan het aantal bytes in de buffer wordt verzonden. Het is de verantwoordelijkheid van uw toepassing om het aantal verzonden bytes bij te houden en de bewerking opnieuw uit te voeren totdat de toepassing de bytes in de buffer verzendt. Er is ook geen garantie dat de gegevens die u verzendt, onmiddellijk in het netwerk worden weergegeven. Om de netwerkefficiëntie te verhogen, kan het onderliggende systeem de overdracht vertragen totdat een aanzienlijke hoeveelheid uitgaande gegevens wordt verzameld. Een geslaagde voltooiing van de Send methode betekent dat het onderliggende systeem ruimte heeft gehad om uw gegevens te bufferen voor een netwerk verzenden.

Note

Als u een SocketExceptionontvangt, gebruikt u de SocketException.ErrorCode eigenschap om de specifieke foutcode te verkrijgen. Nadat u deze code hebt verkregen, raadpleegt u de Windows Sockets versie 2 API-foutcode documentatie voor een gedetailleerde beschrijving van de fout.

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.

Van toepassing op

Send(Byte[], Int32, SocketFlags)

Hiermee wordt het opgegeven aantal bytes aan gegevens naar een verbonden verzonden Socket, met behulp van de opgegeven SocketFlags.

public:
 int Send(cli::array <System::Byte> ^ buffer, int size, System::Net::Sockets::SocketFlags socketFlags);
public int Send(byte[] buffer, int size, System.Net.Sockets.SocketFlags socketFlags);
member this.Send : byte[] * int * System.Net.Sockets.SocketFlags -> int
Public Function Send (buffer As Byte(), size As Integer, socketFlags As SocketFlags) As Integer

Parameters

buffer
Byte[]

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

size
Int32

Het aantal te verzenden bytes.

socketFlags
SocketFlags

Een bitsgewijze combinatie van de SocketFlags waarden.

Retouren

Het aantal bytes dat naar de Socket.

Uitzonderingen

buffer is null.

size is kleiner dan 0 of overschrijdt de grootte van de buffer.

socketFlags is geen geldige combinatie van waarden.

– of –

Er treedt een fout op in het besturingssysteem tijdens het openen van de socket.

Voorbeelden

In het volgende codevoorbeeld worden de gegevens die in buffer zijn gevonden, verzonden en opgegeven None voor SocketFlags.

// Displays sending with a connected socket
// using the overload that takes a buffer, message size, and socket flags.
public static int SendReceiveTest3(Socket server)
{
    byte[] msg = Encoding.UTF8.GetBytes("This is a test");
    byte[] bytes = new byte[256];
    try
    {
        // Blocks until send returns.
        int i = server.Send(msg, msg.Length, SocketFlags.None);
        Console.WriteLine("Sent {0} bytes.", i);

        // Get reply from the server.
        int byteCount = server.Receive(bytes, bytes.Length, SocketFlags.None);
        if (byteCount > 0)
            Console.WriteLine(Encoding.UTF8.GetString(bytes, 0, byteCount));
    }
    catch (SocketException e)
    {
        Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode);
        return (e.ErrorCode);
    }
    return 0;
}
' Displays sending with a connected socket
' using the overload that takes a buffer, message size, and socket flags.
Public Shared Function SendReceiveTest3(ByVal server As Socket) As Integer 
    Dim msg As Byte() = Encoding.UTF8.GetBytes("This is a test")
    Dim bytes(255) As Byte
    Try
        ' Blocks until send returns.
        Dim i As Integer = server.Send(msg, msg.Length, SocketFlags.None)
        Console.WriteLine("Sent {0} bytes.", i)
        
        ' Get reply from the server.
        Dim byteCount As Integer = server.Receive(bytes, server.Available, SocketFlags.None)
        If byteCount > 0 Then
            Console.WriteLine(Encoding.UTF8.GetString(bytes))
        End If
    Catch e As SocketException
        Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode)
        Return e.ErrorCode
    End Try
    Return 0

End Function 'SendReceiveTest3

Opmerkingen

Send verzendt synchroon gegevens naar de externe host die is ingesteld in de Connect of Accept methode en retourneert het aantal verzonden bytes. Send kan worden gebruikt voor zowel verbindingsgeoriënteerde als verbindingsloze protocollen.

Voor deze overbelasting is een buffer vereist die de gegevens bevat die u wilt verzenden, het aantal bytes dat u wilt verzenden en een bitsgewijze combinatie van een SocketFlagswillekeurige. Als u de DontRoute vlag opgeeft als de socketflags parameter, worden de gegevens die u verzendt, niet gerouteerd.

Als u een verbindingsloos protocol gebruikt, moet u aanroepen voordat u deze methode aanroept Connect of Send een SocketException. Als u een verbindingsgeoriënteerd protocol gebruikt, moet u een Connect externe hostverbinding tot stand brengen of gebruiken Accept om een binnenkomende verbinding te accepteren.

Als u een verbindingsloos protocol gebruikt en gegevens wilt verzenden naar verschillende hosts, moet u de SendTo methode gebruiken. Als u de SendTo methode niet gebruikt, moet u de Connect methode aanroepen voordat elke aanroep naar de Send methode wordt aangeroepen. U kunt zelfs gebruiken SendTo nadat u een standaard externe host hebt ingesteld met Connect. U kunt ook de standaard externe host wijzigen voordat u aanroept Send door een andere aanroep uit te voeren.Connect

Met een verbindingsgeoriënteerd protocol Send wordt geblokkeerd totdat het aangevraagde aantal bytes wordt verzonden, tenzij er een time-out is ingesteld met behulp van Socket.SendTimeout. Als de time-outwaarde is overschreden, genereert de Send aanroep een SocketException. In de niet-blokkeringsmodus kan dit worden voltooid, Send zelfs als er minder dan het aantal bytes wordt verzonden dat u aanvraagt. Het is de verantwoordelijkheid van uw toepassing om het aantal verzonden bytes bij te houden en de bewerking opnieuw uit te voeren totdat de toepassing het aangevraagde aantal bytes verzendt. Er is ook geen garantie dat de gegevens die u verzendt, onmiddellijk in het netwerk worden weergegeven. Om de netwerkefficiëntie te verhogen, kan het onderliggende systeem de overdracht vertragen totdat een aanzienlijke hoeveelheid uitgaande gegevens wordt verzameld. Een geslaagde voltooiing van de Send methode betekent dat het onderliggende systeem ruimte heeft gehad om uw gegevens te bufferen voor een netwerk verzenden.

Note

U moet ervoor zorgen dat de grootte niet groter is dan de maximale pakketgrootte van de onderliggende serviceprovider. Als dit het geval is, wordt het datagram niet verzonden en Send wordt er een SocketException. Als u een SocketExceptionontvangt, gebruikt u de SocketException.ErrorCode eigenschap om de specifieke foutcode te verkrijgen. Nadat u deze code hebt verkregen, raadpleegt u de Windows Sockets versie 2 API-foutcode documentatie voor een gedetailleerde beschrijving van de fout.

Dit lid voert traceringsgegevens uit wanneer u netwerktracering inschakelt in uw toepassing. Zie Network Tracing in .NET Framework voor meer informatie.

Important

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.

Zie ook

Van toepassing op

Send(ReadOnlySpan<Byte>, SocketFlags, SocketError)

Hiermee worden gegevens verzonden naar een verbonden verbinding Socket met behulp van de opgegeven SocketFlags.

public:
 int Send(ReadOnlySpan<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int Send(ReadOnlySpan<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode);
member this.Send : ReadOnlySpan<byte> * System.Net.Sockets.SocketFlags * SocketError -> int
Public Function Send (buffer As ReadOnlySpan(Of Byte), socketFlags As SocketFlags, ByRef errorCode As SocketError) As Integer

Parameters

buffer
ReadOnlySpan<Byte>

Een reeks bytes die de gegevens bevat die moeten worden verzonden.

socketFlags
SocketFlags

Een bitsgewijze combinatie van de opsommingswaarden waarmee gedrag voor verzenden en ontvangen wordt opgegeven.

errorCode
SocketError

Wanneer deze methode retourneert, bevat deze een van de opsommingswaarden waarmee foutcodes voor de socket worden gedefinieerd.

Retouren

Het aantal bytes dat naar de Socket.

Uitzonderingen

Er is een fout opgetreden bij het openen van de socket.

Opmerkingen

Send verzendt synchroon gegevens naar de externe host die is opgegeven in de Connect of Accept methode en retourneert het aantal verzonden bytes. Send kan worden gebruikt voor zowel verbindingsgeoriënteerde als verbindingsloze protocollen.

Voor deze overbelasting is een buffer vereist die de gegevens bevat die u wilt verzenden. De SocketFlags waarde wordt standaard ingesteld op 0, de bufferverschil is standaard ingesteld op 0 en het aantal bytes dat standaardwaarden naar de grootte van de buffer moet verzenden.

Als u een verbindingsloos protocol gebruikt, moet u aanroepen voordat u deze methode aanroept Connect of Send een SocketException. Als u een verbindingsgeoriënteerd protocol gebruikt, moet u een Connect externe hostverbinding tot stand brengen of gebruiken Accept om een binnenkomende verbinding te accepteren.

Als u een verbindingsloos protocol gebruikt en gegevens wilt verzenden naar verschillende hosts, moet u de SendTo methode gebruiken. Als u de SendTo methode niet gebruikt, moet u aanroepen Connect voor elke aanroep naar Send. U kunt zelfs gebruiken SendTo nadat u een standaard externe host hebt ingesteld met Connect. U kunt ook de standaard externe host wijzigen voordat u aanroept Send door een andere aanroep uit te voeren.Connect

Als u een verbindingsgeoriënteerd protocol gebruikt, Send wordt dit geblokkeerd totdat alle bytes in de buffer worden verzonden, tenzij er een time-out is ingesteld met behulp van Socket.SendTimeout. Als de time-outwaarde is overschreden, genereert de Send aanroep een SocketException. In de niet-blokkeringsmodus kan het voltooien, Send zelfs als er minder dan het aantal bytes in de buffer wordt verzonden. Het is de verantwoordelijkheid van uw toepassing om het aantal verzonden bytes bij te houden en de bewerking opnieuw uit te voeren totdat de toepassing de bytes in de buffer verzendt. Er is ook geen garantie dat de gegevens die u verzendt, onmiddellijk in het netwerk worden weergegeven. Om de netwerkefficiëntie te verhogen, kan het onderliggende systeem de overdracht vertragen totdat een aanzienlijke hoeveelheid uitgaande gegevens wordt verzameld. Een geslaagde voltooiing van de Send methode betekent dat het onderliggende systeem ruimte heeft gehad om uw gegevens te bufferen voor een netwerk verzenden.

Note

Als u een SocketExceptionontvangt, gebruikt u de SocketException.ErrorCode eigenschap om de specifieke foutcode te verkrijgen. Nadat u deze code hebt verkregen, raadpleegt u de Windows Sockets versie 2 API-foutcode documentatie voor een gedetailleerde beschrijving van de fout.

Dit lid voert traceringsgegevens uit wanneer u netwerktracering inschakelt in uw toepassing. Zie Network Tracing in .NET Framework voor meer informatie.

Important

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.

Zie ook

Van toepassing op

Send(IList<ArraySegment<Byte>>, SocketFlags)

Hiermee wordt de set buffers in de lijst verzonden naar een verbonden Socket, met behulp van de opgegeven SocketFlags.

public:
 int Send(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags);
public int Send(System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags);
member this.Send : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags -> int
Public Function Send (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags) As Integer

Parameters

buffers
IList<ArraySegment<Byte>>

Een lijst met ArraySegment<T>s van het type Byte dat de gegevens bevat die moeten worden verzonden.

socketFlags
SocketFlags

Een bitsgewijze combinatie van de SocketFlags waarden.

Retouren

Het aantal bytes dat naar de Socket.

Uitzonderingen

buffers is null.

buffers is leeg.

Er is een fout opgetreden bij het openen van de socket.

Opmerkingen

Deze overbelasting vereist ten minste één buffer die de gegevens bevat die u wilt verzenden. De SocketFlags waarde wordt standaard ingesteld op 0. Als u de DontRoute vlag opgeeft als de socketFlags parameter, worden de gegevens die u verzendt, niet gerouteerd.

Als u een verbindingsloos protocol gebruikt, moet u aanroepen voordat u deze methode aanroept Connect of Send een SocketException. Als u een verbindingsgeoriënteerd protocol gebruikt, moet u een Connect externe hostverbinding tot stand brengen of gebruiken Accept om een binnenkomende verbinding te accepteren.

Als u een verbindingsloos protocol gebruikt en gegevens wilt verzenden naar verschillende hosts, moet u de SendTo methode gebruiken. Als u de SendTo methode niet gebruikt, moet u aanroepen Connect voordat elke aanroep naar Send. U kunt zelfs gebruiken SendTo nadat u een standaard externe host hebt ingesteld met Connect. U kunt ook de standaard externe host wijzigen voordat u aanroept Send door een andere aanroep uit te voeren.Connect

Als u een verbindingsgeoriënteerd protocol gebruikt, Send wordt dit geblokkeerd totdat alle bytes in de buffer worden verzonden, tenzij er een time-out is ingesteld met behulp van Socket.SendTimeout. Als de time-outwaarde is overschreden, genereert de Send aanroep een SocketException. In de niet-blokkerende modus kan het voltooien, Send zelfs als er minder dan het aantal bytes in de buffer wordt verzonden. Het is de verantwoordelijkheid van uw toepassing om het aantal verzonden bytes bij te houden en de bewerking opnieuw uit te voeren totdat de toepassing de bytes in de buffer verzendt. Er is ook geen garantie dat de gegevens die u verzendt, onmiddellijk in het netwerk worden weergegeven. Om de netwerkefficiëntie te verhogen, kan het onderliggende systeem de overdracht vertragen totdat een aanzienlijke hoeveelheid uitgaande gegevens wordt verzameld. Een geslaagde voltooiing van de Send methode betekent dat het onderliggende systeem ruimte heeft gehad om uw gegevens te bufferen voor een netwerk verzenden.

Note

Als u een SocketExceptionontvangt, gebruikt u de SocketException.ErrorCode eigenschap om de specifieke foutcode te verkrijgen. Nadat u deze code hebt verkregen, raadpleegt u de Windows Sockets versie 2 API-foutcode documentatie voor een gedetailleerde beschrijving van de fout.

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.

Van toepassing op

Send(Byte[], SocketFlags)

Hiermee worden gegevens verzonden naar een verbonden verbinding Socket met behulp van de opgegeven SocketFlags.

public:
 int Send(cli::array <System::Byte> ^ buffer, System::Net::Sockets::SocketFlags socketFlags);
public int Send(byte[] buffer, System.Net.Sockets.SocketFlags socketFlags);
member this.Send : byte[] * System.Net.Sockets.SocketFlags -> int
Public Function Send (buffer As Byte(), socketFlags As SocketFlags) As Integer

Parameters

buffer
Byte[]

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

socketFlags
SocketFlags

Een bitsgewijze combinatie van de SocketFlags waarden.

Retouren

Het aantal bytes dat naar de Socket.

Uitzonderingen

buffer is null.

Er is een fout opgetreden bij het openen van de socket.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe gegevens worden verzonden op een verbonden Socket.

// Displays sending with a connected socket
// using the overload that takes a buffer and socket flags.
public static int SendReceiveTest2(Socket server)
{
    byte[] msg = Encoding.UTF8.GetBytes("This is a test");
    byte[] bytes = new byte[256];
    try
    {
        // Blocks until send returns.
        int byteCount = server.Send(msg, SocketFlags.None);
        Console.WriteLine("Sent {0} bytes.", byteCount);

        // Get reply from the server.
        byteCount = server.Receive(bytes, SocketFlags.None);
        if (byteCount > 0)
            Console.WriteLine(Encoding.UTF8.GetString(bytes));
    }
    catch (SocketException e)
    {
        Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode);
        return (e.ErrorCode);
    }
    return 0;
}
' Displays sending with a connected socket
' using the overload that takes a buffer and socket flags.
Public Shared Function SendReceiveTest2(ByVal server As Socket) As Integer 
    Dim msg As Byte() = Encoding.UTF8.GetBytes("This is a test")
    Dim bytes(255) As Byte
    Try
        ' Blocks until send returns.
        Dim byteCount As Integer = server.Send(msg, SocketFlags.None)
        Console.WriteLine("Sent {0} bytes.", byteCount)
        
        ' Get reply from the server.
        byteCount = server.Receive(bytes, SocketFlags.None)
        If byteCount > 0 Then
            Console.WriteLine(Encoding.UTF8.GetString(bytes))
        End If
    Catch e As SocketException
        Console.WriteLine("{0} Error code: {1}.", e.Message, e.ErrorCode)
        Return e.ErrorCode
    End Try
    Return 0

End Function 'SendReceiveTest2

Opmerkingen

Send verzendt synchroon gegevens naar de externe host die is ingesteld in de Connect of Accept methode en retourneert het aantal verzonden bytes. De Send methode kan worden gebruikt voor zowel verbindingsgeoriënteerde als verbindingsloze protocollen.

Voor deze overbelasting is een buffer vereist die de gegevens bevat die u wilt verzenden en een bitsgewijze combinatie van SocketFlags. De bufferverschil is standaard ingesteld op 0 en het aantal bytes dat standaardwaarden naar de grootte van de buffer moet worden verzonden. Als u de DontRoute vlag opgeeft als parameterwaarde socketflags , worden de gegevens die u verzendt, niet gerouteerd.

Als u een verbindingsloos protocol gebruikt, moet u aanroepen voordat u deze methode aanroept Connect of Send een SocketException. Als u een verbindingsgeoriënteerd protocol gebruikt, moet u een Connect externe hostverbinding tot stand brengen of gebruiken Accept om een binnenkomende verbinding te accepteren.

Als u een verbindingsloos protocol gebruikt en gegevens wilt verzenden naar verschillende hosts, moet u de SendTo methode gebruiken. Als u de SendTo methode niet gebruikt, moet u de Connect methode aanroepen voordat elke aanroep naar Send. U kunt zelfs gebruiken SendTo nadat u een standaard externe host hebt ingesteld met Connect. U kunt ook de standaard externe host wijzigen voordat u aanroept Send door een andere aanroep uit te voeren.Connect

Als u een verbindingsgeoriënteerd protocol gebruikt, Send wordt dit geblokkeerd totdat alle bytes in de buffer worden verzonden, tenzij er een time-out is ingesteld met behulp van Socket.SendTimeout. Als de time-outwaarde is overschreden, genereert de Send aanroep een SocketException. In de niet-blokkeringsmodus kan het voltooien, Send zelfs als er minder dan het aantal bytes in de buffer wordt verzonden. Het is de verantwoordelijkheid van uw toepassing om het aantal verzonden bytes bij te houden en de bewerking opnieuw uit te voeren totdat de toepassing het aangevraagde aantal bytes verzendt. Er is ook geen garantie dat de gegevens die u verzendt, onmiddellijk in het netwerk worden weergegeven. Om de netwerkefficiëntie te verhogen, kan het onderliggende systeem de overdracht vertragen totdat een aanzienlijke hoeveelheid uitgaande gegevens wordt verzameld. Een geslaagde voltooiing van de Send methode betekent dat het onderliggende systeem ruimte heeft gehad om uw gegevens te bufferen voor een netwerk verzenden.

Note

U moet ervoor 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 Send wordt er een SocketException. Als u een SocketExceptionontvangt, gebruikt u de SocketException.ErrorCode eigenschap om de specifieke foutcode te verkrijgen. Nadat u deze code hebt verkregen, raadpleegt u de Windows Sockets versie 2 API-foutcode documentatie voor een gedetailleerde beschrijving van de fout.

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.

Zie ook

Van toepassing op

Send(ReadOnlySpan<Byte>)

Hiermee worden gegevens verzonden naar een verbonden Socket.

public:
 int Send(ReadOnlySpan<System::Byte> buffer);
public int Send(ReadOnlySpan<byte> buffer);
member this.Send : ReadOnlySpan<byte> -> int
Public Function Send (buffer As ReadOnlySpan(Of Byte)) As Integer

Parameters

buffer
ReadOnlySpan<Byte>

Een reeks bytes die de gegevens bevat die moeten worden verzonden.

Retouren

Het aantal bytes dat naar de Socket.

Uitzonderingen

Er is een fout opgetreden bij het openen van de socket.

Opmerkingen

Send verzendt synchroon gegevens naar de externe host die is opgegeven in de Connect of Accept methode en retourneert het aantal verzonden bytes. Send kan worden gebruikt voor zowel verbindingsgeoriënteerde als verbindingsloze protocollen.

Voor deze overbelasting is een buffer vereist die de gegevens bevat die u wilt verzenden. De SocketFlags waarde wordt standaard ingesteld op 0, de bufferverschil is standaard ingesteld op 0 en het aantal bytes dat standaardwaarden naar de grootte van de buffer moet verzenden.

Als u een verbindingsloos protocol gebruikt, moet u aanroepen voordat u deze methode aanroept Connect of Send een SocketException. Als u een verbindingsgeoriënteerd protocol gebruikt, moet u een Connect externe hostverbinding tot stand brengen of gebruiken Accept om een binnenkomende verbinding te accepteren.

Als u een verbindingsloos protocol gebruikt en gegevens wilt verzenden naar verschillende hosts, moet u de SendTo methode gebruiken. Als u de SendTo methode niet gebruikt, moet u aanroepen Connect voor elke aanroep naar Send. U kunt zelfs gebruiken SendTo nadat u een standaard externe host hebt ingesteld met Connect. U kunt ook de standaard externe host wijzigen voordat u aanroept Send door een andere aanroep uit te voeren.Connect

Als u een verbindingsgeoriënteerd protocol gebruikt, Send wordt dit geblokkeerd totdat alle bytes in de buffer worden verzonden, tenzij er een time-out is ingesteld met behulp van Socket.SendTimeout. Als de time-outwaarde is overschreden, genereert de Send aanroep een SocketException. In de niet-blokkeringsmodus kan het voltooien, Send zelfs als er minder dan het aantal bytes in de buffer wordt verzonden. Het is de verantwoordelijkheid van uw toepassing om het aantal verzonden bytes bij te houden en de bewerking opnieuw uit te voeren totdat de toepassing de bytes in de buffer verzendt. Er is ook geen garantie dat de gegevens die u verzendt, onmiddellijk in het netwerk worden weergegeven. Om de netwerkefficiëntie te verhogen, kan het onderliggende systeem de overdracht vertragen totdat een aanzienlijke hoeveelheid uitgaande gegevens wordt verzameld. Een geslaagde voltooiing van de Send methode betekent dat het onderliggende systeem ruimte heeft gehad om uw gegevens te bufferen voor een netwerk verzenden.

Note

Als u een SocketExceptionontvangt, gebruikt u de SocketException.ErrorCode eigenschap om de specifieke foutcode te verkrijgen. Nadat u deze code hebt verkregen, raadpleegt u de Windows Sockets versie 2 API-foutcode documentatie voor een gedetailleerde beschrijving van de fout.

Dit lid voert traceringsgegevens uit wanneer u netwerktracering inschakelt in uw toepassing. Zie Network Tracing in .NET Framework voor meer informatie.

Important

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.

Zie ook

Van toepassing op

Send(IList<ArraySegment<Byte>>)

Hiermee wordt de set buffers in de lijst verzonden naar een verbonden Socket.

public:
 int Send(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers);
public int Send(System.Collections.Generic.IList<ArraySegment<byte>> buffers);
member this.Send : System.Collections.Generic.IList<ArraySegment<byte>> -> int
Public Function Send (buffers As IList(Of ArraySegment(Of Byte))) As Integer

Parameters

buffers
IList<ArraySegment<Byte>>

Een lijst met ArraySegment<T>s van het type Byte dat de gegevens bevat die moeten worden verzonden.

Retouren

Het aantal bytes dat naar de Socket.

Uitzonderingen

buffers is null.

buffers is leeg.

Er is een fout opgetreden bij het openen van de socket. Zie de sectie Opmerkingen hieronder.

Opmerkingen

Send kan worden gebruikt voor zowel verbindingsgeoriënteerde als verbindingsloze protocollen.

Deze overbelasting vereist ten minste één buffer die de gegevens bevat die u wilt verzenden.

Als u een verbindingsloos protocol gebruikt, moet u aanroepen voordat u deze methode aanroept Connect of Send een SocketException. Als u een verbindingsgeoriënteerd protocol gebruikt, moet u een Connect externe hostverbinding tot stand brengen of gebruiken Accept om een binnenkomende verbinding te accepteren.

Als u een verbindingsloos protocol gebruikt en gegevens wilt verzenden naar verschillende hosts, moet u de SendTo methode gebruiken. Als u de SendTo methode niet gebruikt, moet u aanroepen Connect voordat elke aanroep naar Send. U kunt zelfs gebruiken SendTo nadat u een standaard externe host hebt ingesteld met Connect. U kunt ook de standaard externe host wijzigen voordat u aanroept Send door een andere aanroep uit te voeren.Connect

Als u een verbindingsgeoriënteerd protocol gebruikt, Send wordt dit geblokkeerd totdat alle bytes in de buffer worden verzonden, tenzij er een time-out is ingesteld met behulp van Socket.SendTimeout. Als de time-outwaarde is overschreden, genereert de Send aanroep een SocketException. In de niet-blokkeringsmodus kan het voltooien, Send zelfs als er minder dan het aantal bytes in de buffer wordt verzonden. Het is de verantwoordelijkheid van uw toepassing om het aantal verzonden bytes bij te houden en de bewerking opnieuw uit te voeren totdat de toepassing de bytes in de buffer verzendt. Er is ook geen garantie dat de gegevens die u verzendt, onmiddellijk in het netwerk worden weergegeven. Om de netwerkefficiëntie te verhogen, kan het onderliggende systeem de overdracht vertragen totdat een aanzienlijke hoeveelheid uitgaande gegevens wordt verzameld. Een geslaagde voltooiing van de Send methode betekent dat het onderliggende systeem ruimte heeft gehad om uw gegevens te bufferen voor een netwerk verzenden.

Note

Als u een SocketExceptionontvangt, gebruikt u de SocketException.ErrorCode eigenschap om de specifieke foutcode te verkrijgen. Nadat u deze code hebt verkregen, raadpleegt u de Windows Sockets versie 2 API-foutcode documentatie voor een gedetailleerde beschrijving van de fout.

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.

Van toepassing op

Send(ReadOnlySpan<Byte>, SocketFlags)

Hiermee worden gegevens verzonden naar een verbonden verbinding Socket met behulp van de opgegeven SocketFlags.

public:
 int Send(ReadOnlySpan<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags);
public int Send(ReadOnlySpan<byte> buffer, System.Net.Sockets.SocketFlags socketFlags);
member this.Send : ReadOnlySpan<byte> * System.Net.Sockets.SocketFlags -> int
Public Function Send (buffer As ReadOnlySpan(Of Byte), socketFlags As SocketFlags) As Integer

Parameters

buffer
ReadOnlySpan<Byte>

Een reeks bytes die de gegevens bevat die moeten worden verzonden.

socketFlags
SocketFlags

Een bitsgewijze combinatie van de opsommingswaarden waarmee gedrag voor verzenden en ontvangen wordt opgegeven.

Retouren

Het aantal bytes dat naar de Socket.

Uitzonderingen

Er is een fout opgetreden bij het openen van de socket.

Zie ook

Van toepassing op