Socket.Send 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.
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
Retouren
Het aantal bytes dat naar de Socket.
Uitzonderingen
buffer is null.
Er is een fout opgetreden bij het openen van de socket.
De Socket is gesloten.
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
- Connect(EndPoint)
- SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)
- SocketFlags
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
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
- 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.
De Socket is gesloten.
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
- Connect(EndPoint)
- SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)
- SocketFlags
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
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
- 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.
De Socket is gesloten.
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
- Connect(EndPoint)
- SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)
- SocketFlags
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
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.
De Socket is gesloten.
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
- 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.
De Socket is gesloten.
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
- Connect(EndPoint)
- SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)
- SocketFlags
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
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.
De Socket is gesloten.
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
- Connect(EndPoint)
- SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)
- SocketFlags
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
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.
De Socket is gesloten.
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
- 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.
De Socket is gesloten.
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
- Connect(EndPoint)
- SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)
- SocketFlags
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
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.
De Socket is gesloten.
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
- Connect(EndPoint)
- SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)
- SocketFlags
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
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.
De Socket is gesloten.
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.
De Socket is gesloten.
Zie ook
- Connect(EndPoint)
- SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)
- SocketFlags
- SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)