Condividi tramite


Socket.GetSocketOption Metodo

Definizione

Restituisce il valore di un'opzione Socket .

Overload

Nome Descrizione
GetSocketOption(SocketOptionLevel, SocketOptionName)

Restituisce il valore di un'opzione specificata Socket , rappresentata come oggetto .

GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Restituisce l'impostazione dell'opzione specificata Socket , rappresentata come matrice di byte.

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Restituisce il valore dell'opzione specificata Socket in una matrice.

GetSocketOption(SocketOptionLevel, SocketOptionName)

Origine:
Socket.cs
Origine:
Socket.cs
Origine:
Socket.cs
Origine:
Socket.cs

Restituisce il valore di un'opzione specificata Socket , rappresentata come 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 SocketOptionLevel valori.

optionName
SocketOptionName

Uno dei SocketOptionName valori.

Restituisce

Oggetto che rappresenta il valore dell'opzione. Quando il optionName parametro è impostato sul Linger valore restituito è un'istanza della LingerOption classe . Quando optionName è impostato su AddMembership o DropMembership, il valore restituito è un'istanza della MulticastOption classe . Quando optionName è qualsiasi altro valore, il valore restituito è un numero intero.

Eccezioni

Si è verificato un errore durante il tentativo di accesso al socket.

oppure

optionName è stato impostato sul valore MaxConnectionsnon supportato.

L'oggetto Socket è stato chiuso.

Esempio

L'esempio di codice seguente recupera i LingerOption valori e Send timeout e li visualizza nella console.

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 le opzioni determinano il comportamento dell'oggetto corrente Socket. Usare questo overload per ottenere le Lingeropzioni , AddMembershipe DropMembershipSocket . Per l'opzione Linger usare Socket per il optionLevel parametro . Per AddMembership e DropMembership, usare IP. Se si desidera impostare il valore di una delle opzioni elencate in precedenza, usare il SetSocketOption metodo .

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

Si applica a

GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Origine:
Socket.cs
Origine:
Socket.cs
Origine:
Socket.cs
Origine:
Socket.cs

Restituisce l'impostazione dell'opzione specificata Socket , rappresentata come 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 SocketOptionLevel valori.

optionName
SocketOptionName

Uno dei SocketOptionName valori.

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 .NET Compact Framework lo spazio buffer predefinito di Windows CE è impostato su 32768 byte. È possibile modificare lo spazio del buffer per socket chiamando SetSocketOption.

L'oggetto Socket è stato chiuso.

Esempio

L'esempio di codice seguente recupera i LingerOption valori e Send timeout e li visualizza nella console.

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 le 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'eccezione SocketException. 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. Usare questo overload per qualsiasi socket rappresentato da valori booleani o interi.

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

Si applica a

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Origine:
Socket.cs
Origine:
Socket.cs
Origine:
Socket.cs
Origine:
Socket.cs

Restituisce il valore dell'opzione specificata Socket in una matrice.

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 SocketOptionLevel valori.

optionName
SocketOptionName

Uno dei SocketOptionName valori.

optionLength
Int32

Lunghezza, in byte, del valore restituito previsto.

Restituisce

Byte[]

Matrice di tipo Byte che contiene il valore dell'opzione socket.

Eccezioni

Si è verificato un errore durante il tentativo di accesso al socket.

oppure

Nelle applicazioni .NET Compact Framework lo spazio buffer predefinito di Windows CE è impostato su 32768 byte. È possibile modificare lo spazio del buffer per socket chiamando SetSocketOption.

L'oggetto Socket è stato chiuso.

Esempio

L'esempio di codice seguente recupera i LingerOption valori e Send timeout e li visualizza nella console.

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 i byte. Se il valore dell'opzione richiede più byte, GetSocketOption genererà un'eccezione SocketException. Usare questo overload per qualsiasi socket rappresentato da valori booleani o interi.

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

Si applica a