Socket.GetSocketOption 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.
Restituisce il valore di un'opzione di Socket.
Overload
GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[]) |
Restituisce l'impostazione dell'opzione Socket specificata, rappresentata come una matrice di byte. |
GetSocketOption(SocketOptionLevel, SocketOptionName, Int32) |
Restituisce in una matrice il valore dell'opzione di Socket specificata. |
GetSocketOption(SocketOptionLevel, SocketOptionName) |
Restituisce il valore di un'opzione Socket specificata, rappresentata da un oggetto. |
GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
Restituisce l'impostazione dell'opzione Socket specificata, rappresentata come una matrice di byte.
public:
void GetSocketOption(System::Net::Sockets::SocketOptionLevel optionLevel, System::Net::Sockets::SocketOptionName optionName, cli::array <System::Byte> ^ optionValue);
public void GetSocketOption (System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, byte[] optionValue);
member this.GetSocketOption : System.Net.Sockets.SocketOptionLevel * System.Net.Sockets.SocketOptionName * byte[] -> unit
Public Sub GetSocketOption (optionLevel As SocketOptionLevel, optionName As SocketOptionName, optionValue As Byte())
Parametri
- optionLevel
- SocketOptionLevel
Uno dei valori di SocketOptionLevel.
- optionName
- SocketOptionName
Uno dei valori di SocketOptionName.
Eccezioni
Si è verificato un errore durante il tentativo di accesso al socket.
-oppure-
Nelle applicazioni di .NET Compact Framework, lo spazio di buffer predefinito per Windows CE è impostato su 32768 byte. È possibile modificare lo spazio di buffer per ciascun socket chiamando SetSocketOption.
L'oggetto Socket è stato chiuso.
Esempio
L'esempio di codice seguente recupera i LingerOption valori di timeout e Send li visualizza nella console.
Console::Write("This application will timeout if Send does not return within ");
Console::WriteLine(Encoding::ASCII->GetString(s->GetSocketOption(SocketOptionLevel::Socket, SocketOptionName::SendTimeout, 4)));
// Blocks until send returns.
int i = s->Send(msg);
// Blocks until read returns.
array<Byte>^ bytes = gcnew array<Byte>(1024);
s->Receive(bytes);
// Displays to the screen.
Console::WriteLine(Encoding::ASCII->GetString(bytes));
s->Shutdown(SocketShutdown::Both);
Console::Write("If data remains to be sent, this application will stay open for ");
Console::WriteLine(safe_cast<LingerOption^>(s->GetSocketOption(SocketOptionLevel::Socket, SocketOptionName::Linger))->LingerTime.ToString());
s->Close();
Console.WriteLine("This application will timeout if Send does not return within " + Encoding.ASCII.GetString(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4)));
// blocks until send returns
int i = s.Send(msg);
// blocks until read returns
byte[] bytes = new byte[1024];
s.Receive(bytes);
// Display to the screen
Console.WriteLine(Encoding.ASCII.GetString(bytes));
s.Shutdown(SocketShutdown.Both);
Console.WriteLine("If data remains to be sent, this application will stay open for " + ((LingerOption)s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger)).LingerTime.ToString());
s.Close();
Console.WriteLine(("This application will timeout if Send does not return within " + Encoding.ASCII.GetString(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4))))
' blocks until send returns
Dim i As Integer = s.Send(msg)
' blocks until read returns
Dim bytes(1024) As Byte
s.Receive(bytes)
'Display to the screen
Console.WriteLine(Encoding.ASCII.GetString(bytes))
s.Shutdown(SocketShutdown.Both)
Console.WriteLine(("If data remains to be sent, this application will stay open for " + CType(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger), LingerOption).LingerTime.ToString()))
s.Close()
End Sub
Commenti
Socket opzioni determinano il comportamento dell'oggetto corrente Socket. Al termine di questo metodo, la matrice specificata dal optionValue
parametro contiene il valore dell'opzione specificata Socket .
Quando la lunghezza della optionValue
matrice è inferiore al numero di byte necessari per archiviare il valore dell'opzione specificata Socket , GetSocketOption genererà un SocketExceptionoggetto . Se si riceve un SocketExceptionoggetto , utilizzare la proprietà per ottenere il SocketException.ErrorCode codice di errore specifico. Dopo aver ottenuto questo codice, vedere la documentazione del codice di errore dell'API Windows Sockets versione 2 per una descrizione dettagliata dell'errore. Usare questo overload per tutti i socket rappresentati da valori booleani o interi.
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
Si applica a
GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
Restituisce in una matrice il valore dell'opzione di Socket specificata.
public:
cli::array <System::Byte> ^ GetSocketOption(System::Net::Sockets::SocketOptionLevel optionLevel, System::Net::Sockets::SocketOptionName optionName, int optionLength);
public byte[] GetSocketOption (System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName, int optionLength);
member this.GetSocketOption : System.Net.Sockets.SocketOptionLevel * System.Net.Sockets.SocketOptionName * int -> byte[]
Public Function GetSocketOption (optionLevel As SocketOptionLevel, optionName As SocketOptionName, optionLength As Integer) As Byte()
Parametri
- optionLevel
- SocketOptionLevel
Uno dei valori di SocketOptionLevel.
- optionName
- SocketOptionName
Uno dei valori di SocketOptionName.
- optionLength
- Int32
Lunghezza in byte del valore restituito previsto.
Restituisce
Matrice di tipo Byte che contiene il valore dell'opzione di socket.
Eccezioni
Si è verificato un errore durante il tentativo di accesso al socket.
-oppure-
Nelle applicazioni di .NET Compact Framework, lo spazio di buffer predefinito per Windows CE è impostato su 32768 byte. È possibile modificare lo spazio di buffer per ciascun socket chiamando SetSocketOption.
L'oggetto Socket è stato chiuso.
Esempio
L'esempio di codice seguente recupera i LingerOption valori di timeout e Send li visualizza nella console.
Console::Write("This application will timeout if Send does not return within ");
Console::WriteLine(Encoding::ASCII->GetString(s->GetSocketOption(SocketOptionLevel::Socket, SocketOptionName::SendTimeout, 4)));
// Blocks until send returns.
int i = s->Send(msg);
// Blocks until read returns.
array<Byte>^ bytes = gcnew array<Byte>(1024);
s->Receive(bytes);
// Displays to the screen.
Console::WriteLine(Encoding::ASCII->GetString(bytes));
s->Shutdown(SocketShutdown::Both);
Console::Write("If data remains to be sent, this application will stay open for ");
Console::WriteLine(safe_cast<LingerOption^>(s->GetSocketOption(SocketOptionLevel::Socket, SocketOptionName::Linger))->LingerTime.ToString());
s->Close();
Console.WriteLine("This application will timeout if Send does not return within " + Encoding.ASCII.GetString(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4)));
// blocks until send returns
int i = s.Send(msg);
// blocks until read returns
byte[] bytes = new byte[1024];
s.Receive(bytes);
// Display to the screen
Console.WriteLine(Encoding.ASCII.GetString(bytes));
s.Shutdown(SocketShutdown.Both);
Console.WriteLine("If data remains to be sent, this application will stay open for " + ((LingerOption)s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger)).LingerTime.ToString());
s.Close();
Console.WriteLine(("This application will timeout if Send does not return within " + Encoding.ASCII.GetString(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4))))
' blocks until send returns
Dim i As Integer = s.Send(msg)
' blocks until read returns
Dim bytes(1024) As Byte
s.Receive(bytes)
'Display to the screen
Console.WriteLine(Encoding.ASCII.GetString(bytes))
s.Shutdown(SocketShutdown.Both)
Console.WriteLine(("If data remains to be sent, this application will stay open for " + CType(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger), LingerOption).LingerTime.ToString()))
s.Close()
End Sub
Commenti
Il optionLength
parametro imposta la dimensione massima della matrice di byte restituita. Se il valore dell'opzione richiede meno byte, la matrice conterrà solo molti byte. Se il valore dell'opzione richiede più byte, GetSocketOption genererà un SocketExceptionoggetto . Usare questo overload per tutti i socket rappresentati da valori booleani o interi.
Nota
Se si riceve un SocketExceptionoggetto , utilizzare la proprietà per ottenere il SocketException.ErrorCode codice di errore specifico. Dopo aver ottenuto questo codice, vedere la documentazione del codice di errore dell'API Windows Sockets versione 2 per una descrizione dettagliata dell'errore.
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
Si applica a
GetSocketOption(SocketOptionLevel, SocketOptionName)
- Origine:
- Socket.cs
- Origine:
- Socket.cs
- Origine:
- Socket.cs
Restituisce il valore di un'opzione Socket specificata, rappresentata da un oggetto.
public:
System::Object ^ GetSocketOption(System::Net::Sockets::SocketOptionLevel optionLevel, System::Net::Sockets::SocketOptionName optionName);
public object? GetSocketOption (System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName);
public object GetSocketOption (System.Net.Sockets.SocketOptionLevel optionLevel, System.Net.Sockets.SocketOptionName optionName);
member this.GetSocketOption : System.Net.Sockets.SocketOptionLevel * System.Net.Sockets.SocketOptionName -> obj
Public Function GetSocketOption (optionLevel As SocketOptionLevel, optionName As SocketOptionName) As Object
Parametri
- optionLevel
- SocketOptionLevel
Uno dei valori di SocketOptionLevel.
- optionName
- SocketOptionName
Uno dei valori di SocketOptionName.
Restituisce
Oggetto che rappresenta il valore dell'opzione. Quando il parametro optionName
è impostato su Linger, il valore restituito è un'istanza della classe LingerOption. Quando optionName
è impostato su AddMembership o DropMembership, il valore restituito è un'istanza della classe MulticastOption. Quando optionName
è qualsiasi altro valore, il valore restituito è un intero.
Eccezioni
Si è verificato un errore durante il tentativo di accesso al socket.
-oppure-
optionName
è stato impostato su un valore di MaxConnections non supportato.
L'oggetto Socket è stato chiuso.
Esempio
L'esempio di codice seguente recupera i LingerOption valori di timeout e Send li visualizza nella console.
Console::Write("This application will timeout if Send does not return within ");
Console::WriteLine(Encoding::ASCII->GetString(s->GetSocketOption(SocketOptionLevel::Socket, SocketOptionName::SendTimeout, 4)));
// Blocks until send returns.
int i = s->Send(msg);
// Blocks until read returns.
array<Byte>^ bytes = gcnew array<Byte>(1024);
s->Receive(bytes);
// Displays to the screen.
Console::WriteLine(Encoding::ASCII->GetString(bytes));
s->Shutdown(SocketShutdown::Both);
Console::Write("If data remains to be sent, this application will stay open for ");
Console::WriteLine(safe_cast<LingerOption^>(s->GetSocketOption(SocketOptionLevel::Socket, SocketOptionName::Linger))->LingerTime.ToString());
s->Close();
Console.WriteLine("This application will timeout if Send does not return within " + Encoding.ASCII.GetString(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4)));
// blocks until send returns
int i = s.Send(msg);
// blocks until read returns
byte[] bytes = new byte[1024];
s.Receive(bytes);
// Display to the screen
Console.WriteLine(Encoding.ASCII.GetString(bytes));
s.Shutdown(SocketShutdown.Both);
Console.WriteLine("If data remains to be sent, this application will stay open for " + ((LingerOption)s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger)).LingerTime.ToString());
s.Close();
Console.WriteLine(("This application will timeout if Send does not return within " + Encoding.ASCII.GetString(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4))))
' blocks until send returns
Dim i As Integer = s.Send(msg)
' blocks until read returns
Dim bytes(1024) As Byte
s.Receive(bytes)
'Display to the screen
Console.WriteLine(Encoding.ASCII.GetString(bytes))
s.Shutdown(SocketShutdown.Both)
Console.WriteLine(("If data remains to be sent, this application will stay open for " + CType(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger), LingerOption).LingerTime.ToString()))
s.Close()
End Sub
Commenti
Socket opzioni determinano il comportamento dell'oggetto corrente Socket. Usare questo overload per ottenere le Lingeropzioni , AddMembershipe DropMembershipSocket . Per l'opzione, usare Socket per il LingeroptionLevel
parametro . Per AddMembership e DropMembership, usare IP. Se si vuole impostare il valore di una delle opzioni elencate in precedenza, usare il SetSocketOption metodo .
Nota
Se si riceve un SocketExceptionoggetto , utilizzare la proprietà per ottenere il SocketException.ErrorCode codice di errore specifico. Dopo aver ottenuto questo codice, vedere la documentazione del codice di errore dell'API Windows Sockets versione 2 per una descrizione dettagliata dell'errore.
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.