Socket.Receive Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Riceve i dati da un oggetto associato Socket.
Overload
| Nome | Descrizione |
|---|---|
| Receive(Byte[], Int32, Int32, SocketFlags, SocketError) |
Riceve i dati da un oggetto associato Socket in un buffer di ricezione, usando l'oggetto specificato SocketFlags. |
| Receive(Span<Byte>, SocketFlags, SocketError) |
Riceve i dati da un oggetto associato Socket in un buffer di ricezione, usando l'oggetto specificato SocketFlags. |
| Receive(IList<ArraySegment<Byte>>, SocketFlags, SocketError) |
Riceve i dati da un oggetto associato Socket all'elenco di buffer di ricezione, usando l'oggetto specificato SocketFlags. |
| Receive(Byte[], Int32, SocketFlags) |
Riceve il numero specificato di byte di dati da un oggetto associato Socket in un buffer di ricezione, utilizzando l'oggetto specificato SocketFlags. |
| Receive(Span<Byte>, SocketFlags) |
Riceve i dati da un oggetto associato Socket in un buffer di ricezione, usando l'oggetto specificato SocketFlags. |
| Receive(Byte[], Int32, Int32, SocketFlags) |
Riceve il numero specificato di byte da un oggetto associato Socket nella posizione di offset specificata del buffer di ricezione, utilizzando l'oggetto specificato SocketFlags. |
| Receive(Byte[], SocketFlags) |
Riceve i dati da un oggetto associato Socket in un buffer di ricezione, usando l'oggetto specificato SocketFlags. |
| Receive(Span<Byte>) |
Riceve i dati da un oggetto associato Socket in un buffer di ricezione. |
| Receive(IList<ArraySegment<Byte>>) |
Riceve i dati da un oggetto associato Socket all'elenco di buffer di ricezione. |
| Receive(Byte[]) |
Riceve i dati da un oggetto associato Socket in un buffer di ricezione. |
| Receive(IList<ArraySegment<Byte>>, SocketFlags) |
Riceve i dati da un oggetto associato Socket all'elenco di buffer di ricezione, usando l'oggetto specificato SocketFlags. |
Receive(Byte[], Int32, Int32, SocketFlags, SocketError)
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
Riceve i dati da un oggetto associato Socket in un buffer di ricezione, usando l'oggetto specificato SocketFlags.
public:
int Receive(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int Receive(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode);
member this.Receive : byte[] * int * int * System.Net.Sockets.SocketFlags * SocketError -> int
Public Function Receive (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags, ByRef errorCode As SocketError) As Integer
Parametri
- buffer
- Byte[]
Matrice di tipo Byte che rappresenta il percorso di archiviazione per i dati ricevuti.
- offset
- Int32
Posizione nel buffer parametro per archiviare i dati ricevuti.
- size
- Int32
Numero di byte da ricevere.
- socketFlags
- SocketFlags
Combinazione bit per bit dei SocketFlags valori.
- errorCode
- SocketError
Oggetto SocketError che archivia l'errore socket.
Restituisce
Numero totale di byte ricevuti. Il metodo restituisce zero (0) solo se sono stati richiesti zero byte o se non sono disponibili più byte perché il socket peer ha eseguito un arresto normale.
Eccezioni
buffer è null.
offset è minore di 0.
oppure
offset è maggiore della lunghezza di buffer.
oppure
size è minore di 0.
oppure
size è maggiore della lunghezza di buffer meno il valore del offset parametro.
L'oggetto Socket è stato chiuso.
Un chiamante nello stack di chiamate non dispone delle autorizzazioni necessarie.
Commenti
Il Receive metodo legge i dati nel parametro buffer e restituisce il numero di byte letti correttamente. È possibile chiamare Receive sia da socket orientati alla connessione che da socket senza connessione.
Se si usa un protocollo orientato alla connessione, è necessario chiamare Connect per stabilire una connessione host remota o Accept per accettare una connessione in ingresso prima di chiamare Receive. Il Receive metodo leggerà solo i dati che arrivano dall'host remoto stabilito nel Connect metodo o Accept . Se si usa un protocollo senza connessione, è anche possibile usare il ReceiveFrom metodo . ReceiveFrom consentirà di ricevere i dati in arrivo da qualsiasi host.
Se non sono disponibili dati per la lettura, il Receive metodo bloccherà fino a quando i dati non sono disponibili, a meno che non sia stato impostato un valore di timeout tramite Socket.ReceiveTimeout. Se il valore di timeout è stato superato, la Receive chiamata genererà .SocketException Se si è in modalità non bloccata e non sono disponibili dati nel buffer dello stack di protocolli, il Receive metodo verrà completato immediatamente e genera un'eccezione SocketException. Si è verificato un errore durante il tentativo di accesso al socket. Vedere la sezione Osservazioni di seguito. È possibile utilizzare la Available proprietà per determinare se i dati sono disponibili per la lettura. Quando Available è diverso da zero, ripetere l'operazione di ricezione.
Se si usa un elemento orientato alla Socketconnessione, il Receive metodo leggerà la quantità di dati disponibile, fino al numero di byte specificato dal parametro size. Se l'host remoto arresta la Socket connessione con il Shutdown metodo e tutti i dati disponibili sono stati ricevuti, il Receive metodo verrà completato immediatamente e restituirà zero byte.
Se si usa un oggetto senza connessione Socket, Receive leggerà il primo datagramma in coda dall'indirizzo di destinazione specificato nel Connect metodo . Se il datagramma ricevuto è maggiore delle dimensioni del buffer parametro, buffer viene riempito con la prima parte del messaggio, i dati in eccesso vengono persi e viene generata un'eccezione SocketException .
Annotazioni
Questo membro restituisce informazioni di traccia quando si abilita la traccia di rete nell'applicazione. Per altre informazioni, vedere Traccia di rete in .NET Framework.
Vedi anche
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
Si applica a
Receive(Span<Byte>, SocketFlags, SocketError)
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
Riceve i dati da un oggetto associato Socket in un buffer di ricezione, usando l'oggetto specificato SocketFlags.
public:
int Receive(Span<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int Receive(Span<byte> buffer, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode);
member this.Receive : Span<byte> * System.Net.Sockets.SocketFlags * SocketError -> int
Public Function Receive (buffer As Span(Of Byte), socketFlags As SocketFlags, ByRef errorCode As SocketError) As Integer
Parametri
Intervallo di byte che rappresenta il percorso di archiviazione per i dati ricevuti.
- socketFlags
- SocketFlags
Combinazione bit per bit dei valori di enumerazione che specifica i comportamenti di invio e ricezione.
- errorCode
- SocketError
Quando termina, questo metodo contiene uno dei valori di enumerazione che definisce i codici di errore per il socket.
Restituisce
Numero totale di byte ricevuti. Il metodo restituisce zero (0) solo se sono stati richiesti zero byte o se non sono disponibili più byte perché il socket peer ha eseguito un arresto normale.
Eccezioni
Si è verificato un errore durante il tentativo di accesso al socket.
L'oggetto Socket è stato chiuso.
Un chiamante nello stack di chiamate non dispone delle autorizzazioni necessarie.
Commenti
Il Receive metodo legge i dati nel parametro buffer e restituisce il numero di byte letti correttamente. È possibile chiamare Receive sia da socket orientati alla connessione che da socket senza connessione.
Questo overload richiede solo di fornire un buffer di ricezione. Per impostazione predefinita, l'offset del buffer è 0, la dimensione predefinita è la lunghezza del parametro buffer e il SocketFlags valore predefinito è None.
Se si usa un protocollo orientato alla connessione, è necessario chiamare Connect per stabilire una connessione host remota o Accept per accettare una connessione in ingresso prima di chiamare Receive. Il Receive metodo leggerà solo i dati che arrivano dall'host remoto stabilito nel Connect metodo o Accept . Se si usa un protocollo senza connessione, è anche possibile usare il ReceiveFrom metodo . ReceiveFrom consentirà di ricevere i dati in arrivo da qualsiasi host.
Se non sono disponibili dati per la lettura, il Receive metodo bloccherà fino a quando i dati non sono disponibili, a meno che non sia stato impostato un valore di timeout tramite Socket.ReceiveTimeout. Quando viene superato il valore di timeout, la Receive chiamata genererà .SocketException Se si è in modalità non bloccando e non sono disponibili dati nel buffer dello stack del protocollo, il Receive metodo verrà completato immediatamente e genera un'eccezione SocketException. È possibile utilizzare la Available proprietà per determinare se i dati sono disponibili per la lettura. Quando Available è diverso da zero, ripetere l'operazione di ricezione.
Se si usa un elemento orientato alla Socketconnessione, il Receive metodo leggerà la quantità di dati disponibile, fino alle dimensioni del buffer. Se l'host remoto arresta la Socket connessione con il Shutdown metodo e tutti i dati disponibili sono stati ricevuti, il Receive metodo verrà completato immediatamente e restituirà zero byte.
Se si usa un oggetto senza connessione Socket, Receive leggerà il primo datagramma in coda dall'indirizzo di destinazione specificato nel Connect metodo . Se il datagramma ricevuto è maggiore delle dimensioni del buffer parametro, buffer viene riempito con la prima parte del messaggio, i dati in eccesso vengono persi e viene generata un'eccezione SocketException .
Annotazioni
Se si riceve un oggetto SocketException, utilizzare la SocketException.ErrorCode proprietà per ottenere il codice di errore specifico. Dopo aver ottenuto questo codice, fare riferimento alla documentazione relativa al codice di errore dell'API Windows Sockets versione 2 per una descrizione dettagliata dell'errore.
Annotazioni
Questo membro restituisce informazioni di traccia quando si abilita la traccia di rete nell'applicazione. Per altre informazioni, vedere Traccia di rete in .NET Framework.
Vedi anche
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
Si applica a
Receive(IList<ArraySegment<Byte>>, SocketFlags, SocketError)
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
Riceve i dati da un oggetto associato Socket all'elenco di buffer di ricezione, usando l'oggetto specificato SocketFlags.
public:
int Receive(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags, [Runtime::InteropServices::Out] System::Net::Sockets::SocketError % errorCode);
public int Receive(System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags, out System.Net.Sockets.SocketError errorCode);
member this.Receive : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags * SocketError -> int
Public Function Receive (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags, ByRef errorCode As SocketError) As Integer
Parametri
- buffers
- IList<ArraySegment<Byte>>
Elenco di ArraySegment<T>tipi Byte che contiene i dati ricevuti.
- socketFlags
- SocketFlags
Combinazione bit per bit dei SocketFlags valori.
- errorCode
- SocketError
Oggetto SocketError che archivia l'errore socket.
Restituisce
Numero totale di byte ricevuti. Il metodo restituisce zero (0) solo se sono stati richiesti zero byte o se non sono disponibili più byte perché il socket peer ha eseguito un arresto normale.
Eccezioni
Si è verificato un errore durante il tentativo di accesso al socket.
L'oggetto Socket è stato chiuso.
Commenti
Questo metodo legge i dati nel buffers parametro e restituisce il numero di byte letti correttamente. È possibile chiamare sia da socket orientati alla connessione che da socket senza connessione.
Questo overload richiede di fornire uno o più buffer di ricezione. Il SocketFlags valore predefinito è None.
Se si usa un protocollo orientato alla connessione, è necessario chiamare Connect per stabilire una connessione host remota o Accept per accettare una connessione in ingresso prima di chiamare Receive. Il Receive metodo leggerà solo i dati che arrivano dalla connessione host remota stabilita nel Connect metodo o Accept . Se si usa un protocollo senza connessione, è anche possibile usare il ReceiveFrom metodo . ReceiveFrom consentirà di ricevere i dati in arrivo da qualsiasi host.
Se non sono disponibili dati per la lettura, il Receive metodo bloccherà fino a quando i dati non sono disponibili, a meno che non sia stato impostato un valore di timeout tramite Socket.ReceiveTimeout. Se il valore di timeout è stato superato, la Receive chiamata genera un'eccezione SocketException. Se si è in modalità non bloccata e non sono disponibili dati nel buffer dello stack di protocolli, il Receive metodo verrà completato immediatamente e genera un'eccezione SocketException. È possibile utilizzare la Available proprietà per determinare se i dati sono disponibili per la lettura. Quando Available è diverso da zero, ripetere l'operazione di ricezione.
Se si usa un elemento orientato alla Socketconnessione, il Receive metodo leggerà la quantità di dati disponibile, fino alle dimensioni del buffer. Se l'host remoto arresta la Socket connessione con il Shutdown metodo e tutti i dati disponibili sono stati ricevuti, il Receive metodo verrà completato immediatamente e restituirà zero byte.
Se si usa un oggetto senza connessione Socket,Receive leggerà il primo datagramma in coda dall'indirizzo di destinazione specificato nel Connect metodo . Se il datagramma ricevuto è maggiore delle dimensioni del buffers parametro, buffers viene riempito con la prima parte del messaggio, i dati in eccesso vengono persi e viene generata un'eccezione SocketException .
Annotazioni
Se si riceve un oggetto SocketException, utilizzare la SocketException.ErrorCode proprietà per ottenere il codice di errore specifico. Dopo aver ottenuto questo codice, fare riferimento alla documentazione relativa al codice di errore dell'API Windows Sockets versione 2 per una descrizione dettagliata dell'errore.
Annotazioni
Questo membro restituisce informazioni di traccia quando si abilita la traccia di rete nell'applicazione. Per altre informazioni, vedere Traccia di rete in .NET Framework.
Vedi anche
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
Si applica a
Receive(Byte[], Int32, SocketFlags)
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
Riceve il numero specificato di byte di dati da un oggetto associato Socket in un buffer di ricezione, utilizzando l'oggetto specificato SocketFlags.
public:
int Receive(cli::array <System::Byte> ^ buffer, int size, System::Net::Sockets::SocketFlags socketFlags);
public int Receive(byte[] buffer, int size, System.Net.Sockets.SocketFlags socketFlags);
member this.Receive : byte[] * int * System.Net.Sockets.SocketFlags -> int
Public Function Receive (buffer As Byte(), size As Integer, socketFlags As SocketFlags) As Integer
Parametri
- buffer
- Byte[]
Matrice di tipo Byte che rappresenta il percorso di archiviazione per i dati ricevuti.
- size
- Int32
Numero di byte da ricevere.
- socketFlags
- SocketFlags
Combinazione bit per bit dei SocketFlags valori.
Restituisce
Numero totale di byte ricevuti. Il metodo restituisce zero (0) solo se sono stati richiesti zero byte o se non sono disponibili più byte perché il socket peer ha eseguito un arresto normale.
Eccezioni
buffer è null.
size supera le dimensioni di buffer.
Si è verificato un errore durante il tentativo di accesso al socket.
L'oggetto Socket è stato chiuso.
Un chiamante nello stack di chiamate non dispone delle autorizzazioni necessarie.
Esempio
Di seguito vengono ricevuti i dati trovati in buffere viene None specificato per SocketFlags.
// Receive the host home page content and loop until all the data is received.
Int32 bytes = s.Receive(RecvBytes, RecvBytes.Length, 0);
strRetPage = "Default HTML page on " + server + ":\r\n";
strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes);
while (bytes > 0)
{
bytes = s.Receive(RecvBytes, RecvBytes.Length, 0);
strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes);
}
' Receive the host home page content and loop until all the data is received.
'Dim bytes As Int32 = s.Receive(RecvBytes, RecvBytes.Length, 0)
Dim bytes As Int32 = s.Receive(RecvBytes, RecvBytes.Length, 0)
strRetPage = "Default HTML page on " + server + ":\r\n"
strRetPage = "Default HTML page on " + server + ":" + ControlChars.Lf + ControlChars.NewLine
Dim i As Integer
While bytes > 0
bytes = s.Receive(RecvBytes, RecvBytes.Length, 0)
strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes)
End While
Commenti
Il Receive metodo legge i dati nel buffer parametro e restituisce il numero di byte letti correttamente. È possibile chiamare Receive sia da socket orientati alla connessione che da socket senza connessione.
Questo overload richiede solo di fornire un buffer di ricezione, il numero di byte che si desidera ricevere e l'oggetto necessario SocketFlags.
Se si usa un protocollo orientato alla connessione, è necessario chiamare Connect per stabilire una connessione host remota o Accept per accettare una connessione in ingresso prima di chiamare Receive. Il Receive metodo leggerà solo i dati che arrivano dall'host remoto stabilito nel Connect metodo o Accept . Se si usa un protocollo senza connessione, è anche possibile usare il ReceiveFrom metodo . ReceiveFrom consentirà di ricevere i dati in arrivo da qualsiasi host.
Se non sono disponibili dati per la lettura, il Receive metodo bloccherà fino a quando i dati non sono disponibili, a meno che non sia stato impostato un valore di timeout tramite Socket.ReceiveTimeout. Se il valore di timeout è stato superato, la Receive chiamata genererà .SocketException Se si è in modalità non bloccata e non sono disponibili dati nel buffer dello stack del protocollo, il Receive metodo verrà completato immediatamente e genererà un'eccezione SocketException. È possibile utilizzare la Available proprietà per determinare se i dati sono disponibili per la lettura. Quando Available è diverso da zero, ripetere l'operazione di ricezione.
Se si usa un elemento orientato alla Socketconnessione, il Receive metodo leggerà la quantità di dati disponibile, fino al numero di byte specificato dal size parametro . Se l'host remoto arresta la Socket connessione con il Shutdown metodo e tutti i dati disponibili sono stati ricevuti, il Receive metodo verrà completato immediatamente e restituirà zero byte.
Se si usa un oggetto senza connessione Socket, Receive leggerà il primo datagramma in coda dall'indirizzo di destinazione specificato nel Connect metodo . Se il datagramma ricevuto è maggiore delle dimensioni del buffer parametro, buffer viene riempito con la prima parte del messaggio, i dati in eccesso vengono persi e viene generata un'eccezione SocketException .
Annotazioni
Se si riceve un oggetto SocketException, utilizzare la SocketException.ErrorCode proprietà per ottenere il codice di errore specifico. Dopo aver ottenuto questo codice, fare riferimento alla documentazione relativa al codice di errore dell'API Windows Sockets versione 2 per una descrizione dettagliata dell'errore.
Annotazioni
Questo membro restituisce informazioni di traccia quando si abilita la traccia di rete nell'applicazione. Per altre informazioni, vedere Traccia di rete in .NET Framework.
Vedi anche
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
Si applica a
Receive(Span<Byte>, SocketFlags)
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
Riceve i dati da un oggetto associato Socket in un buffer di ricezione, usando l'oggetto specificato SocketFlags.
public:
int Receive(Span<System::Byte> buffer, System::Net::Sockets::SocketFlags socketFlags);
public int Receive(Span<byte> buffer, System.Net.Sockets.SocketFlags socketFlags);
member this.Receive : Span<byte> * System.Net.Sockets.SocketFlags -> int
Public Function Receive (buffer As Span(Of Byte), socketFlags As SocketFlags) As Integer
Parametri
Intervallo di byte che rappresenta il percorso di archiviazione per i dati ricevuti.
- socketFlags
- SocketFlags
Combinazione bit per bit dei valori di enumerazione che specifica i comportamenti di invio e ricezione.
Restituisce
Numero totale di byte ricevuti. Il metodo restituisce zero (0) solo se sono stati richiesti zero byte o se non sono disponibili più byte perché il socket peer ha eseguito un arresto normale.
Eccezioni
Si è verificato un errore durante il tentativo di accesso al socket.
L'oggetto Socket è stato chiuso.
Un chiamante nello stack di chiamate non dispone delle autorizzazioni necessarie.
Commenti
Il Receive metodo legge i dati nel parametro buffer e restituisce il numero di byte letti correttamente. È possibile chiamare Receive sia da socket orientati alla connessione che da socket senza connessione.
Questo overload richiede solo di fornire un buffer di ricezione. Per impostazione predefinita, l'offset del buffer è 0, la dimensione predefinita è la lunghezza del parametro buffer e il SocketFlags valore predefinito è None.
Se si usa un protocollo orientato alla connessione, è necessario chiamare Connect per stabilire una connessione host remota o Accept per accettare una connessione in ingresso prima di chiamare Receive. Il Receive metodo leggerà solo i dati che arrivano dall'host remoto stabilito nel Connect metodo o Accept . Se si usa un protocollo senza connessione, è anche possibile usare il ReceiveFrom metodo . ReceiveFrom consentirà di ricevere i dati in arrivo da qualsiasi host.
Se non sono disponibili dati per la lettura, il Receive metodo bloccherà fino a quando i dati non sono disponibili, a meno che non sia stato impostato un valore di timeout tramite Socket.ReceiveTimeout. Quando viene superato il valore di timeout, la Receive chiamata genererà .SocketException Se si è in modalità non bloccata e non sono disponibili dati nel buffer dello stack di protocolli, il Receive metodo verrà completato immediatamente e genera un'eccezione SocketException. È possibile utilizzare la Available proprietà per determinare se i dati sono disponibili per la lettura. Quando Available è diverso da zero, ripetere l'operazione di ricezione.
Se si usa un elemento orientato alla Socketconnessione, il Receive metodo leggerà la quantità di dati disponibile, fino alle dimensioni del buffer. Se l'host remoto arresta la Socket connessione con il Shutdown metodo e tutti i dati disponibili sono stati ricevuti, il Receive metodo verrà completato immediatamente e restituirà zero byte.
Se si usa un oggetto senza connessione Socket, Receive leggerà il primo datagramma in coda dall'indirizzo di destinazione specificato nel Connect metodo . Se il datagramma ricevuto è maggiore delle dimensioni del buffer parametro, buffer viene riempito con la prima parte del messaggio, i dati in eccesso vengono persi e viene generata un'eccezione SocketException .
Annotazioni
Se si riceve un oggetto SocketException, utilizzare la SocketException.ErrorCode proprietà per ottenere il codice di errore specifico. Dopo aver ottenuto questo codice, fare riferimento alla documentazione relativa al codice di errore dell'API Windows Sockets versione 2 per una descrizione dettagliata dell'errore.
Questo membro restituisce informazioni di traccia quando si abilita la traccia di rete nell'applicazione. Per altre informazioni, vedere Traccia di rete in .NET Framework.
Vedi anche
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
Si applica a
Receive(Byte[], Int32, Int32, SocketFlags)
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
Riceve il numero specificato di byte da un oggetto associato Socket nella posizione di offset specificata del buffer di ricezione, utilizzando l'oggetto specificato SocketFlags.
public:
int Receive(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags socketFlags);
public int Receive(byte[] buffer, int offset, int size, System.Net.Sockets.SocketFlags socketFlags);
member this.Receive : byte[] * int * int * System.Net.Sockets.SocketFlags -> int
Public Function Receive (buffer As Byte(), offset As Integer, size As Integer, socketFlags As SocketFlags) As Integer
Parametri
- buffer
- Byte[]
Matrice di tipo Byte che rappresenta il percorso di archiviazione per i dati ricevuti.
- offset
- Int32
Posizione in buffer in cui archiviare i dati ricevuti.
- size
- Int32
Numero di byte da ricevere.
- socketFlags
- SocketFlags
Combinazione bit per bit dei SocketFlags valori.
Restituisce
Numero totale di byte ricevuti. Il metodo restituisce zero (0) solo se sono stati richiesti zero byte o se non sono disponibili più byte perché il socket peer ha eseguito un arresto normale.
Eccezioni
buffer è null.
offset è minore di 0.
oppure
offset è maggiore della lunghezza di buffer.
oppure
size è minore di 0.
oppure
size è maggiore della lunghezza di buffer meno il valore del offset parametro.
socketFlags non è una combinazione valida di valori.
oppure
La LocalEndPoint proprietà non è stata impostata.
oppure
Si verifica un errore del sistema operativo durante l'accesso a Socket.
L'oggetto Socket è stato chiuso.
Un chiamante nello stack di chiamate non dispone delle autorizzazioni necessarie.
Esempio
Nell'esempio di codice seguente viene specificato un buffer di dati, un offset, una dimensione e un flag socket prima di ricevere dati su un oggetto connesso 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
Commenti
Il Receive metodo legge i dati nel parametro buffer e restituisce il numero di byte letti correttamente. È possibile chiamare Receive sia da socket orientati alla connessione che da socket senza connessione.
Se si usa un protocollo orientato alla connessione, è necessario chiamare Connect per stabilire una connessione host remota o Accept per accettare una connessione in ingresso prima di chiamare Receive. Il Receive metodo leggerà solo i dati che arrivano dall'host remoto stabilito nel Connect metodo o Accept . Se si usa un protocollo senza connessione, è anche possibile usare il ReceiveFrom metodo . ReceiveFrom consentirà di ricevere i dati in arrivo da qualsiasi host.
Se non sono disponibili dati per la lettura, il Receive metodo bloccherà fino a quando i dati non sono disponibili, a meno che non sia stato impostato un valore di timeout tramite Socket.ReceiveTimeout. Se il valore di timeout è stato superato, la Receive chiamata genererà .SocketException Se si è in modalità non bloccata e non sono disponibili dati nel buffer dello stack di protocolli, il Receive metodo verrà completato immediatamente e genera un'eccezione SocketException. Si è verificato un errore durante il tentativo di accesso al socket. Vedere la sezione Osservazioni di seguito. È possibile utilizzare la Available proprietà per determinare se i dati sono disponibili per la lettura. Quando Available è diverso da zero, ripetere l'operazione di ricezione.
Se si usa un elemento orientato alla Socketconnessione, il Receive metodo leggerà la quantità di dati disponibile, fino al numero di byte specificato dal parametro size. Se l'host remoto arresta la Socket connessione con il Shutdown metodo e tutti i dati disponibili sono stati ricevuti, il Receive metodo verrà completato immediatamente e restituirà zero byte.
Se si usa un oggetto senza connessione Socket, Receive leggerà il primo datagramma in coda dall'indirizzo di destinazione specificato nel Connect metodo . Se il datagramma ricevuto è maggiore delle dimensioni del buffer parametro, buffer viene riempito con la prima parte del messaggio, i dati in eccesso vengono persi e viene generata un'eccezione SocketException .
Annotazioni
Se si riceve un oggetto SocketException, utilizzare la SocketException.ErrorCode proprietà per ottenere il codice di errore specifico. Dopo aver ottenuto questo codice, fare riferimento alla documentazione relativa al codice di errore dell'API Windows Sockets versione 2 per una descrizione dettagliata dell'errore.
Annotazioni
Questo membro restituisce informazioni di traccia quando si abilita la traccia di rete nell'applicazione. Per altre informazioni, vedere Traccia di rete in .NET Framework.
Vedi anche
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
Si applica a
Receive(Byte[], SocketFlags)
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
Riceve i dati da un oggetto associato Socket in un buffer di ricezione, usando l'oggetto specificato SocketFlags.
public:
int Receive(cli::array <System::Byte> ^ buffer, System::Net::Sockets::SocketFlags socketFlags);
public int Receive(byte[] buffer, System.Net.Sockets.SocketFlags socketFlags);
member this.Receive : byte[] * System.Net.Sockets.SocketFlags -> int
Public Function Receive (buffer As Byte(), socketFlags As SocketFlags) As Integer
Parametri
- buffer
- Byte[]
Matrice di tipo Byte che rappresenta il percorso di archiviazione per i dati ricevuti.
- socketFlags
- SocketFlags
Combinazione bit per bit dei SocketFlags valori.
Restituisce
Numero totale di byte ricevuti. Il metodo restituisce zero (0) solo se sono stati richiesti zero byte o se non sono disponibili più byte perché il socket peer ha eseguito un arresto normale.
Eccezioni
buffer è null.
Si è verificato un errore durante il tentativo di accesso al socket.
L'oggetto Socket è stato chiuso.
Un chiamante nello stack di chiamate non dispone delle autorizzazioni necessarie.
Esempio
Nell'esempio di codice seguente viene specificato un buffer di dati e SocketFlags per la ricezione di dati in un oggetto connesso 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
Commenti
Il Receive metodo legge i dati nel parametro buffer e restituisce il numero di byte letti correttamente. È possibile chiamare Receive sia da socket orientati alla connessione che da socket senza connessione.
Questo overload richiede solo di fornire un buffer di ricezione e l'oggetto necessario SocketFlags. L'offset del buffer viene impostato per impostazione predefinita su 0 e per impostazione predefinita la lunghezza del parametro di byte.
Se si usa un protocollo orientato alla connessione, è necessario chiamare Connect per stabilire una connessione host remota o Accept per accettare una connessione in ingresso prima di chiamare Receive. Il Receive metodo leggerà solo i dati che arrivano dall'host remoto stabilito nel Connect metodo o Accept . Se si usa un protocollo senza connessione, è anche possibile usare il ReceiveFrom metodo . ReceiveFrom consentirà di ricevere i dati in arrivo da qualsiasi host.
Se non sono disponibili dati per la lettura, il Receive metodo bloccherà fino a quando non saranno disponibili i dati. Se si è in modalità non bloccata e non sono disponibili dati nel buffer dello stack di protocolli, il Receive metodo verrà completato immediatamente e genera un'eccezione SocketException. È possibile utilizzare la Available proprietà per determinare se i dati sono disponibili per la lettura. Quando Available è diverso da zero, ripetere l'operazione di ricezione.
Se si usa un elemento orientato alla Socketconnessione, il Receive metodo leggerà la quantità di dati disponibile fino alle dimensioni del buffer. Se l'host remoto arresta la Socket connessione con il Shutdown metodo e tutti i dati disponibili sono stati ricevuti, il Receive metodo verrà completato immediatamente e restituirà zero byte.
Se si usa un oggetto senza connessione Socket, Receive leggerà il primo datagramma accodato dall'indirizzo di destinazione specificato nel Connect metodo . Se il datagramma ricevuto è maggiore delle dimensioni del buffer parametro, buffer viene riempito con la prima parte del messaggio, i dati in eccesso vengono persi e viene generata un'eccezione SocketException .
Annotazioni
Se si riceve un oggetto SocketException, utilizzare la SocketException.ErrorCode proprietà per ottenere il codice di errore specifico. Dopo aver ottenuto questo codice, fare riferimento alla documentazione relativa al codice di errore dell'API Windows Sockets versione 2 per una descrizione dettagliata dell'errore.
Annotazioni
Questo membro restituisce informazioni di traccia quando si abilita la traccia di rete nell'applicazione. Per altre informazioni, vedere Traccia di rete in .NET Framework.
Vedi anche
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
Si applica a
Receive(Span<Byte>)
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
Riceve i dati da un oggetto associato Socket in un buffer di ricezione.
public:
int Receive(Span<System::Byte> buffer);
public int Receive(Span<byte> buffer);
member this.Receive : Span<byte> -> int
Public Function Receive (buffer As Span(Of Byte)) As Integer
Parametri
Intervallo di byte che rappresenta il percorso di archiviazione per i dati ricevuti.
Restituisce
Numero totale di byte ricevuti. Il metodo restituisce zero (0) solo se sono stati richiesti zero byte o se non sono disponibili più byte perché il socket peer ha eseguito un arresto normale.
Eccezioni
Si è verificato un errore durante il tentativo di accesso al socket.
L'oggetto Socket è stato chiuso.
Un chiamante nello stack di chiamate non dispone delle autorizzazioni necessarie.
Commenti
Il Receive metodo legge i dati nel parametro buffer e restituisce il numero di byte letti correttamente. È possibile chiamare Receive sia da socket orientati alla connessione che da socket senza connessione.
Questo overload richiede solo di fornire un buffer di ricezione. Per impostazione predefinita, l'offset del buffer è 0, la dimensione predefinita è la lunghezza del parametro buffer e il SocketFlags valore predefinito è None.
Se si usa un protocollo orientato alla connessione, è necessario chiamare Connect per stabilire una connessione host remota o Accept per accettare una connessione in ingresso prima di chiamare Receive. Il Receive metodo leggerà solo i dati che arrivano dall'host remoto stabilito nel Connect metodo o Accept . Se si usa un protocollo senza connessione, è anche possibile usare il ReceiveFrom metodo . ReceiveFrom consentirà di ricevere i dati in arrivo da qualsiasi host.
Se non sono disponibili dati per la lettura, il Receive metodo bloccherà fino a quando i dati non sono disponibili, a meno che non sia stato impostato un valore di timeout tramite Socket.ReceiveTimeout. Quando viene superato il valore di timeout, la Receive chiamata genererà .SocketException Se si è in modalità non bloccando e non sono disponibili dati nel buffer dello stack del protocollo, il Receive metodo verrà completato immediatamente e genera un'eccezione SocketException. È possibile utilizzare la Available proprietà per determinare se i dati sono disponibili per la lettura. Quando Available è diverso da zero, ripetere l'operazione di ricezione.
Se si usa un elemento orientato alla Socketconnessione, il Receive metodo leggerà la quantità di dati disponibile, fino alle dimensioni del buffer. Se l'host remoto arresta la Socket connessione con il Shutdown metodo e tutti i dati disponibili sono stati ricevuti, il Receive metodo verrà completato immediatamente e restituirà zero byte.
Se si usa un oggetto senza connessione Socket, Receive leggerà il primo datagramma in coda dall'indirizzo di destinazione specificato nel Connect metodo . Se il datagramma ricevuto è maggiore delle dimensioni del buffer parametro, buffer viene riempito con la prima parte del messaggio, i dati in eccesso vengono persi e viene generata un'eccezione SocketException .
Annotazioni
Se si riceve un oggetto SocketException, utilizzare la SocketException.ErrorCode proprietà per ottenere il codice di errore specifico. Dopo aver ottenuto questo codice, fare riferimento alla documentazione relativa al codice di errore dell'API Windows Sockets versione 2 per una descrizione dettagliata dell'errore.
Questo membro restituisce informazioni di traccia quando si abilita la traccia di rete nell'applicazione. Per altre informazioni, vedere Traccia di rete in .NET Framework.
Vedi anche
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
Si applica a
Receive(IList<ArraySegment<Byte>>)
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
Riceve i dati da un oggetto associato Socket all'elenco di buffer di ricezione.
public:
int Receive(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers);
public int Receive(System.Collections.Generic.IList<ArraySegment<byte>> buffers);
member this.Receive : System.Collections.Generic.IList<ArraySegment<byte>> -> int
Public Function Receive (buffers As IList(Of ArraySegment(Of Byte))) As Integer
Parametri
- buffers
- IList<ArraySegment<Byte>>
Elenco di ArraySegment<T>tipi Byte che contiene i dati ricevuti.
Restituisce
Numero totale di byte ricevuti. Il metodo restituisce zero (0) solo se sono stati richiesti zero byte o se non sono disponibili più byte perché il socket peer ha eseguito un arresto normale.
Eccezioni
Il buffers parametro è null.
Si è verificato un errore durante il tentativo di accesso al socket.
L'oggetto Socket è stato chiuso.
Commenti
Questo metodo legge i dati nel parametro buffer e restituisce il numero di byte letti correttamente. È possibile chiamare sia da socket orientati alla connessione che da socket senza connessione.
Questo overload richiede di fornire uno o più buffer di ricezione.
Se si usa un protocollo orientato alla connessione, è necessario chiamare Connect per stabilire una connessione host remota o Accept per accettare una connessione in ingresso prima di chiamare Receive. Il Receive metodo leggerà solo i dati che arrivano dalla connessione host remota stabilita nel Connect metodo o Accept . Se si usa un protocollo senza connessione, è anche possibile usare il ReceiveFrom metodo . ReceiveFrom consentirà di ricevere i dati in arrivo da qualsiasi host.
Se non sono disponibili dati per la lettura, il Receive metodo bloccherà fino a quando i dati non sono disponibili, a meno che non sia stato impostato un valore di timeout tramite Socket.ReceiveTimeout. Se il valore di timeout è stato superato, la Receive chiamata genererà .SocketException Se si è in modalità non bloccata e non sono disponibili dati nel buffer dello stack di protocolli, il Receive metodo verrà completato immediatamente e genera un'eccezione SocketException. È possibile utilizzare la Available proprietà per determinare se i dati sono disponibili per la lettura. Quando Available è diverso da zero, ripetere l'operazione di ricezione.
Se si usa un elemento orientato alla Socketconnessione, il Receive metodo leggerà la quantità di dati disponibile, fino alle dimensioni del buffer. Se l'host remoto arresta la Socket connessione con il Shutdown metodo e tutti i dati disponibili sono stati ricevuti, il Receive metodo verrà completato immediatamente e restituirà zero byte.
Se si usa un oggetto senza connessione Socket, Receive leggerà il primo datagramma accodato dall'indirizzo di destinazione specificato nel Connect metodo . Se il datagramma ricevuto è maggiore delle dimensioni del buffers parametro, buffers viene riempito con la prima parte del messaggio, i dati in eccesso vengono persi e viene generata un'eccezione SocketException .
Annotazioni
Se si riceve un oggetto SocketException, utilizzare la SocketException.ErrorCode proprietà per ottenere il codice di errore specifico. Dopo aver ottenuto questo codice, fare riferimento alla documentazione relativa al codice di errore dell'API Windows Sockets versione 2 per una descrizione dettagliata dell'errore.
Nota Questo membro restituisce informazioni di traccia quando si abilita la traccia di rete nell'applicazione. Per altre informazioni, vedere Traccia di rete in .NET Framework.
Si applica a
Receive(Byte[])
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
Riceve i dati da un oggetto associato Socket in un buffer di ricezione.
public:
int Receive(cli::array <System::Byte> ^ buffer);
public int Receive(byte[] buffer);
member this.Receive : byte[] -> int
Public Function Receive (buffer As Byte()) As Integer
Parametri
- buffer
- Byte[]
Matrice di tipo Byte che rappresenta il percorso di archiviazione per i dati ricevuti.
Restituisce
Numero totale di byte ricevuti. Il metodo restituisce zero (0) solo se sono stati richiesti zero byte o se non sono disponibili più byte perché il socket peer ha eseguito un arresto normale.
Eccezioni
buffer è null.
Si è verificato un errore durante il tentativo di accesso al socket.
L'oggetto Socket è stato chiuso.
Un chiamante nello stack di chiamate non dispone delle autorizzazioni necessarie.
Esempio
Nell'esempio di codice seguente vengono ricevuti dati su un oggetto connesso 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
Commenti
Il Receive metodo legge i dati nel parametro buffer e restituisce il numero di byte letti correttamente. È possibile chiamare Receive sia da socket orientati alla connessione che da socket senza connessione.
Questo overload richiede solo di fornire un buffer di ricezione. Per impostazione predefinita, l'offset del buffer è 0, la dimensione predefinita è la lunghezza del parametro buffer e il SocketFlags valore predefinito è None.
Se si usa un protocollo orientato alla connessione, è necessario chiamare Connect per stabilire una connessione host remota o Accept per accettare una connessione in ingresso prima di chiamare Receive. Il Receive metodo leggerà solo i dati che arrivano dall'host remoto stabilito nel Connect metodo o Accept . Se si usa un protocollo senza connessione, è anche possibile usare il ReceiveFrom metodo . ReceiveFrom consentirà di ricevere i dati in arrivo da qualsiasi host.
Se non sono disponibili dati per la lettura, il Receive metodo bloccherà fino a quando i dati non sono disponibili, a meno che non sia stato impostato un valore di timeout tramite Socket.ReceiveTimeout. Se il valore di timeout è stato superato, la Receive chiamata genererà .SocketException Se si è in modalità non bloccata e non sono disponibili dati nel buffer dello stack di protocolli, il Receive metodo verrà completato immediatamente e genera un'eccezione SocketException. È possibile utilizzare la Available proprietà per determinare se i dati sono disponibili per la lettura. Quando Available è diverso da zero, ripetere l'operazione di ricezione.
Se si usa un elemento orientato alla Socketconnessione, il Receive metodo leggerà la quantità di dati disponibile, fino alle dimensioni del buffer. Se l'host remoto arresta la Socket connessione con il Shutdown metodo e tutti i dati disponibili sono stati ricevuti, il Receive metodo verrà completato immediatamente e restituirà zero byte.
Se si usa un oggetto senza connessione Socket, Receive leggerà il primo datagramma in coda dall'indirizzo di destinazione specificato nel Connect metodo . Se il datagramma ricevuto è maggiore delle dimensioni del buffer parametro, buffer viene riempito con la prima parte del messaggio, i dati in eccesso vengono persi e viene generata un'eccezione SocketException .
Annotazioni
Se si riceve un oggetto SocketException, utilizzare la SocketException.ErrorCode proprietà per ottenere il codice di errore specifico. Dopo aver ottenuto questo codice, fare riferimento alla documentazione relativa al codice di errore dell'API Windows Sockets versione 2 per una descrizione dettagliata dell'errore.
Annotazioni
Questo membro restituisce informazioni di traccia quando si abilita la traccia di rete nell'applicazione. Per altre informazioni, vedere Traccia di rete in .NET Framework.
Vedi anche
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()
Si applica a
Receive(IList<ArraySegment<Byte>>, SocketFlags)
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
Riceve i dati da un oggetto associato Socket all'elenco di buffer di ricezione, usando l'oggetto specificato SocketFlags.
public:
int Receive(System::Collections::Generic::IList<ArraySegment<System::Byte>> ^ buffers, System::Net::Sockets::SocketFlags socketFlags);
public int Receive(System.Collections.Generic.IList<ArraySegment<byte>> buffers, System.Net.Sockets.SocketFlags socketFlags);
member this.Receive : System.Collections.Generic.IList<ArraySegment<byte>> * System.Net.Sockets.SocketFlags -> int
Public Function Receive (buffers As IList(Of ArraySegment(Of Byte)), socketFlags As SocketFlags) As Integer
Parametri
- buffers
- IList<ArraySegment<Byte>>
Elenco di ArraySegment<T>tipi Byte che contiene i dati ricevuti.
- socketFlags
- SocketFlags
Combinazione bit per bit dei SocketFlags valori.
Restituisce
Numero totale di byte ricevuti. Il metodo restituisce zero (0) solo se sono stati richiesti zero byte o se non sono disponibili più byte perché il socket peer ha eseguito un arresto normale.
Eccezioni
Si è verificato un errore durante il tentativo di accesso al socket.
L'oggetto Socket è stato chiuso.
Esempio
Nell'esempio di codice seguente viene illustrato come ricevere dati in un oggetto connesso Socket.
// Build the buffers for the receive.
List<ArraySegment<byte>> recvBuffers =
new List<ArraySegment<byte>>(2);
byte[] bigBuffer = new byte[1024];
// Specify the first buffer segment (2 bytes, starting
// at the 4th element of bigBuffer)
recvBuffers.Add(new ArraySegment<byte>(bigBuffer, 4, 2));
// Specify the second buffer segment (500 bytes, starting
// at the 20th element of bigBuffer)
recvBuffers.Add(new ArraySegment<byte>(bigBuffer, 20, 500));
int bytesReceived = mySocket.Receive(recvBuffers);
Console.WriteLine("{0}", ASCII.GetString(bigBuffer));
Commenti
Questo metodo legge i dati nel buffers parametro e restituisce il numero di byte letti correttamente. È possibile chiamare sia da socket orientati alla connessione che da socket senza connessione.
Questo overload richiede di fornire uno o più buffer di ricezione. Il SocketFlags valore predefinito è None.
Se si usa un protocollo orientato alla connessione, è necessario chiamare Connect per stabilire una connessione host remota o Accept per accettare una connessione in ingresso prima di chiamare Receive. Il Receive metodo leggerà solo i dati che arrivano dalla connessione host remota stabilita nel Connect metodo o Accept . Se si usa un protocollo senza connessione, è anche possibile usare il ReceiveFrom metodo . ReceiveFrom consentirà di ricevere i dati in arrivo da qualsiasi host.
Se non sono disponibili dati per la lettura, il Receive metodo bloccherà fino a quando i dati non sono disponibili, a meno che non sia stato impostato un valore di timeout tramite Socket.ReceiveTimeout. Se il valore di timeout è stato superato, la Receive chiamata genera un'eccezione SocketException. Se si è in modalità non bloccata e non sono disponibili dati nel buffer dello stack di protocolli, il Receive metodo verrà completato immediatamente e genera un'eccezione SocketException. È possibile utilizzare la Available proprietà per determinare se i dati sono disponibili per la lettura. Quando Available è diverso da zero, ripetere l'operazione di ricezione.
Se si usa un elemento orientato alla Socketconnessione, il Receive metodo leggerà la quantità di dati disponibile, fino alle dimensioni del buffer. Se l'host remoto arresta la Socket connessione con il Shutdown metodo e tutti i dati disponibili sono stati ricevuti, il Receive metodo verrà completato immediatamente e restituirà zero byte.
Se si usa un oggetto senza connessione Socket, Receive leggerà il primo datagramma accodato dall'indirizzo di destinazione specificato nel Connect metodo . Se il datagramma ricevuto è maggiore delle dimensioni del buffers parametro, buffers viene riempito con la prima parte del messaggio, i dati in eccesso vengono persi e viene generata un'eccezione SocketException .
Annotazioni
Se si riceve un oggetto SocketException, utilizzare la SocketException.ErrorCode proprietà per ottenere il codice di errore specifico. Dopo aver ottenuto questo codice, fare riferimento alla documentazione relativa al codice di errore dell'API Windows Sockets versione 2 per una descrizione dettagliata dell'errore.
Annotazioni
Questo membro restituisce informazioni di traccia quando si abilita la traccia di rete nell'applicazione. Per altre informazioni, vedere Traccia di rete in .NET Framework.
Vedi anche
- Connect(EndPoint)
- ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)
- Available
- Shutdown(SocketShutdown)
- Close()