Socket.ReceiveMessageFrom 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.
Overload
ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation) |
Riceve il numero specificato di byte di dati nella posizione specificata del buffer dei dati usando l'oggetto SocketFlags specificato e archivia le informazioni dell'endpoint e del pacchetto. |
ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation) |
Riceve il numero specificato di byte di dati nella posizione specificata del buffer dei dati usando l'oggetto |
ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation)
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
Riceve il numero specificato di byte di dati nella posizione specificata del buffer dei dati usando l'oggetto SocketFlags specificato e archivia le informazioni dell'endpoint e del pacchetto.
public:
int ReceiveMessageFrom(cli::array <System::Byte> ^ buffer, int offset, int size, System::Net::Sockets::SocketFlags % socketFlags, System::Net::EndPoint ^ % remoteEP, [Runtime::InteropServices::Out] System::Net::Sockets::IPPacketInformation % ipPacketInformation);
public int ReceiveMessageFrom (byte[] buffer, int offset, int size, ref System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, out System.Net.Sockets.IPPacketInformation ipPacketInformation);
member this.ReceiveMessageFrom : byte[] * int * int * SocketFlags * EndPoint * IPPacketInformation -> int
Public Function ReceiveMessageFrom (buffer As Byte(), offset As Integer, size As Integer, ByRef socketFlags As SocketFlags, ByRef remoteEP As EndPoint, ByRef ipPacketInformation As IPPacketInformation) As Integer
Parametri
- offset
- Int32
Posizione nel parametro buffer
in cui archiviare i dati ricevuti.
- size
- Int32
Numero di byte da ricevere.
- socketFlags
- SocketFlags
Combinazione bit per bit dei valori di SocketFlags.
- remoteEP
- EndPoint
Riferimento a un EndPoint oggetto dello stesso tipo dell'endpoint dell'host remoto da aggiornare in caso di ricezione riuscita.
- ipPacketInformation
- IPPacketInformation
IPPacketInformation contenente informazioni sull'indirizzo e sull'interfaccia.
Restituisce
Numero di byte ricevuti.
Eccezioni
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 parametro di offset.
socketFlags
non è una combinazione valida di valori.
-oppure-
La proprietà LocalEndPoint non è stata impostata.
-oppure-
.NET Framework viene eseguito in un processore AMD a 64 bit.
-oppure-
Si è verificato un errore durante il tentativo di accesso al socket.
L'oggetto Socket è stato chiuso.
Commenti
Il ReceiveMessageFrom metodo legge i dati nel buffer
parametro , restituisce il numero di byte letti correttamente e acquisisce l'endpoint host remoto da cui sono stati inviati i dati, nonché informazioni sul pacchetto ricevuto.
Il ReceiveMessageFrom metodo viene usato principalmente per ricevere i dati dei messaggi su un socket senza connessione. L'indirizzo locale del socket deve essere noto. Questo metodo può essere usato solo con datagrammi e socket non elaborati. Il socket deve essere inizializzato con il tipo di socket impostato su Dgram o Raw prima di chiamare questo metodo. Questa operazione può essere eseguita quando il socket viene costruito usando Socket.
Per i socket orientati ai messaggi, un messaggio in arrivo viene inserito nel buffer
parametro fino alla dimensione totale specificata nel size
parametro . Il offset
parametro determina dove vengono inseriti i buffer
dati. La quantità effettiva di dati inseriti nell'oggetto buffer
viene restituita dal ReceiveMessageFrom metodo .
Il ReceiveMessageFrom metodo imposta automaticamente l'opzione PacketInformationtrue
socket alla prima chiamata per un determinato Socketoggetto . Tuttavia, l'oggetto restituito IPPacketInformation sarà valido solo per i pacchetti che arrivano nel computer locale dopo l'impostazione dell'opzione socket. Se un socket viene inviato pacchetti tra quando è associato a un endpoint locale (in modo esplicito dal Bind metodo o in modo implicito da uno dei Connectmetodi , ConnectAsync, SendToo SendToAsync ) e la ReceiveMessageFrom prima chiamata al metodo , le chiamate al ReceiveMessageFrom metodo restituiranno oggetti non validi IPPacketInformation per questi pacchetti.
Per assicurarsi che tutti gli IPPacketInformation oggetti siano validi, un'applicazione deve impostare l'opzione PacketInformation socket su true
prima di essere associata a un endpoint locale usando il SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean) metodo .
Un'applicazione può esaminare il ipPacketInformation
parametro se deve sapere se il datagramma è stato inviato usando un indirizzo unicast, multicast o broadcast.
Nota
Oggetto AddressFamily dell'oggetto EndPoint utilizzato in ReceiveFrom deve corrispondere all'oggetto AddressFamily dell'oggetto EndPoint utilizzato in SendTo.
Nota
Questo membro genera informazioni di traccia quando viene abilitata la funzionalità di traccia di rete nell'applicazione in uso. 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
ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation)
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
Riceve il numero specificato di byte di dati nella posizione specificata del buffer dei dati usando l'oggetto socketFlags
specificato e archivia le informazioni dell'endpoint e del pacchetto.
public:
int ReceiveMessageFrom(Span<System::Byte> buffer, System::Net::Sockets::SocketFlags % socketFlags, System::Net::EndPoint ^ % remoteEP, [Runtime::InteropServices::Out] System::Net::Sockets::IPPacketInformation % ipPacketInformation);
public int ReceiveMessageFrom (Span<byte> buffer, ref System.Net.Sockets.SocketFlags socketFlags, ref System.Net.EndPoint remoteEP, out System.Net.Sockets.IPPacketInformation ipPacketInformation);
member this.ReceiveMessageFrom : Span<byte> * SocketFlags * EndPoint * IPPacketInformation -> int
Public Function ReceiveMessageFrom (buffer As Span(Of Byte), ByRef socketFlags As SocketFlags, ByRef remoteEP As EndPoint, ByRef ipPacketInformation As IPPacketInformation) As Integer
Parametri
- socketFlags
- SocketFlags
Combinazione bit per bit dei valori di SocketFlags.
- remoteEP
- EndPoint
Riferimento a un EndPoint oggetto dello stesso tipo dell'endpoint dell'host remoto da aggiornare in caso di ricezione riuscita.
- ipPacketInformation
- IPPacketInformation
IPPacketInformation contenente informazioni sull'indirizzo e sull'interfaccia.
Restituisce
Numero di byte ricevuti.
Eccezioni
L'oggetto Socket è stato chiuso.
RemoteEP EndPoint è null
.
Oggetto AddressFamily dell'oggetto EndPoint utilizzato in ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation) deve corrispondere all'oggetto AddressFamily dell'oggetto EndPoint utilizzato in SendTo.
L'oggetto Socket non è in modalità di blocco e non può accettare questa chiamata sincrona. È necessario chiamare il metodo Bind prima di eseguire questa operazione.