Condividi tramite


Socket.GetSocketOption Metodo

Definizione

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.

optionValue
Byte[]

Matrice di tipo Byte che deve ricevere l'impostazione dell'opzione.

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

Byte[]

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.

Vedi anche

Si applica a