Udostępnij za pośrednictwem


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

SocketOptionLevel Jedna z wartości.

optionName
SocketOptionName

SocketOptionName Jedna z 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 domyślna przestrzeń buforu Windows CE jest ustawiona na 32768 bajtów. Możesz zmienić miejsce bufora na gniazdo, wywołując funkcję SetSocketOption.

Element Socket został zamknięty.

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 Socketelementu . Po pomyślnym ukończeniu tej metody tablica określona przez optionValue parametr zawiera wartość określonej Socket opcji.

Jeśli długość optionValue tablicy jest mniejsza niż liczba bajtów wymaganych do przechowywania wartości określonej Socket opcji, GetSocketOption zwróci 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 Windows Sockets 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

SocketOptionLevel Jedna z wartości.

optionName
SocketOptionName

SocketOptionName Jedna z 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 domyślna przestrzeń buforu Windows CE jest ustawiona na 32768 bajtów. Możesz zmienić miejsce bufora na gniazdo, wywołując funkcję SetSocketOption.

Element Socket został zamknięty.

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 zwróci 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 Windows Sockets 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

SocketOptionLevel Jedna z wartości.

optionName
SocketOptionName

SocketOptionName Jedna z 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 AddMembership wartość lub DropMembership, zwracana wartość jest wystąpieniem MulticastOption klasy. Gdy 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 parametr został ustawiony na nieobsługiwaną wartość MaxConnections.

Element Socket został zamknięty.

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 Socketelementu . Użyj tego przeciążenia, aby uzyskać Lingeropcje , AddMembershipi DropMembershipSocket . W przypadku Linger opcji użyj parametru SocketoptionLevel . W przypadku plików AddMembership i DropMembershipużyj polecenia IP. Jeśli chcesz ustawić wartość dowolnej z opcji wymienionych powyżej, 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 Windows Sockets 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