Socket.GetSocketOption Metoda

Definicja

Zwraca wartość Socket opcji.

Przeciążenia

GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Zwraca określone Socket ustawienie opcji reprezentowane jako tablica bajtów.

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Zwraca wartość określonej Socket opcji w tablicy.

GetSocketOption(SocketOptionLevel, SocketOptionName)

Zwraca wartość określonej Socket opcji reprezentowanej jako obiekt.

GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Źródło:
Socket.cs
Źródło:
Socket.cs
Źródło:
Socket.cs

Zwraca określone Socket ustawienie opcji reprezentowane jako tablica bajtów.

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())

Parametry

optionLevel
SocketOptionLevel

Jedna z SocketOptionLevel wartości.

optionName
SocketOptionName

Jedna z SocketOptionName wartości.

optionValue
Byte[]

Tablica typu Byte , która ma odbierać ustawienie opcji.

Wyjątki

Wystąpił błąd podczas próby uzyskania dostępu do gniazda.

-lub-

W aplikacjach .NET Compact Framework Windows CE domyślne miejsce buforu jest ustawione na 32768 bajtów. Możesz zmienić miejsce buforu na gniazdo, wywołując polecenie SetSocketOption.

Została zamknięta Socket .

Przykłady

Poniższy przykład kodu pobiera wartości limitu LingerOption czasu i Send i wyświetla je w konsoli.

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

Uwagi

Socket opcje określają zachowanie bieżącego Socketobiektu . Po pomyślnym ukończeniu tej metody tablica określona przez optionValue parametr zawiera wartość określonej Socket opcji.

Gdy długość optionValue tablicy jest mniejsza niż liczba bajtów wymaganych do przechowywania wartości określonej Socket opcji, GetSocketOption zgłasza wartość SocketException. Jeśli zostanie wyświetlony element SocketException, użyj SocketException.ErrorCode właściwości , aby uzyskać określony kod błędu. Po uzyskaniu tego kodu zapoznaj się z dokumentacją kodu błędu interfejsu API gniazda systemu Windows w wersji 2 , aby uzyskać szczegółowy opis błędu. Użyj tego przeciążenia dla wszystkich gniazd reprezentowanych przez wartości logiczne lub liczby całkowite.

Uwaga

Ten element członkowski generuje informacje ze śledzenia pod warunkiem włączenia funkcji śledzenia sieci w aplikacji. Aby uzyskać więcej informacji, zobacz Śledzenie sieci w .NET Framework.

Zobacz też

Dotyczy

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Źródło:
Socket.cs
Źródło:
Socket.cs
Źródło:
Socket.cs

Zwraca wartość określonej Socket opcji w tablicy.

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()

Parametry

optionLevel
SocketOptionLevel

Jedna z SocketOptionLevel wartości.

optionName
SocketOptionName

Jedna z SocketOptionName wartości.

optionLength
Int32

Długość w bajtach oczekiwanej wartości zwracanej.

Zwraca

Byte[]

Tablica typu Byte , która zawiera wartość opcji gniazda.

Wyjątki

Wystąpił błąd podczas próby uzyskania dostępu do gniazda.

-lub-

W aplikacjach .NET Compact Framework Windows CE domyślne miejsce buforu jest ustawione na 32768 bajtów. Możesz zmienić miejsce buforu na gniazdo, wywołując polecenie SetSocketOption.

Została zamknięta Socket .

Przykłady

Poniższy przykład kodu pobiera wartości limitu LingerOption czasu i Send i wyświetla je w konsoli.

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

Uwagi

Parametr optionLength ustawia maksymalny rozmiar zwracanej tablicy bajtów. Jeśli wartość opcji wymaga mniejszej liczby bajtów, tablica będzie zawierać tylko tyle bajtów. Jeśli wartość opcji wymaga większej liczby bajtów, GetSocketOption zostanie wyrzucona wartość SocketException. Użyj tego przeciążenia dla wszystkich gniazd reprezentowanych przez wartości logiczne lub liczby całkowite.

Uwaga

Jeśli zostanie wyświetlony element SocketException, użyj SocketException.ErrorCode właściwości , aby uzyskać określony kod błędu. Po uzyskaniu tego kodu zapoznaj się z dokumentacją kodu błędu interfejsu API gniazda systemu Windows w wersji 2 , aby uzyskać szczegółowy opis błędu.

Uwaga

Ten element członkowski generuje informacje ze śledzenia pod warunkiem włączenia funkcji śledzenia sieci w aplikacji. Aby uzyskać więcej informacji, zobacz Śledzenie sieci w .NET Framework.

Zobacz też

Dotyczy

GetSocketOption(SocketOptionLevel, SocketOptionName)

Źródło:
Socket.cs
Źródło:
Socket.cs
Źródło:
Socket.cs

Zwraca wartość określonej Socket opcji reprezentowanej jako obiekt.

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

Parametry

optionLevel
SocketOptionLevel

Jedna z SocketOptionLevel wartości.

optionName
SocketOptionName

Jedna z SocketOptionName wartości.

Zwraca

Obiekt reprezentujący wartość opcji. optionName Gdy parametr jest ustawiony na Linger wartość zwracaną, jest wystąpieniem LingerOption klasy. Gdy optionName jest ustawiona wartość AddMembership lub DropMembership, zwracana wartość jest wystąpieniem MulticastOption klasy. Jeśli optionName jest dowolną inną wartością, zwracana wartość jest liczbą całkowitą.

Wyjątki

Wystąpił błąd podczas próby uzyskania dostępu do gniazda.

-lub-

optionName ustawiono wartość MaxConnectionsnieobsługiwaną .

Została zamknięta Socket .

Przykłady

Poniższy przykład kodu pobiera wartości limitu LingerOption czasu i Send i wyświetla je w konsoli.

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

Uwagi

Socket opcje określają zachowanie bieżącego Socketobiektu . Użyj tego przeciążenia, aby uzyskać Lingeropcje , AddMembershipi DropMembershipSocket . W przypadku Linger opcji użyj Socket parametru optionLevel . W przypadku AddMembership programu i DropMembershipużyj polecenia IP. Jeśli chcesz ustawić wartość dowolnej z wymienionych powyżej opcji, użyj SetSocketOption metody .

Uwaga

Jeśli zostanie wyświetlony element SocketException, użyj SocketException.ErrorCode właściwości , aby uzyskać określony kod błędu. Po uzyskaniu tego kodu zapoznaj się z dokumentacją kodu błędu interfejsu API gniazda systemu Windows w wersji 2 , aby uzyskać szczegółowy opis błędu.

Uwaga

Ten element członkowski generuje informacje ze śledzenia pod warunkiem włączenia funkcji śledzenia sieci w aplikacji. Aby uzyskać więcej informacji, zobacz Śledzenie sieci w .NET Framework.

Zobacz też

Dotyczy