Socket.GetSocketOption Yöntem

Tanım

Bir Socket seçeneğin değerini döndürür.

Aşırı Yüklemeler

GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Bayt dizisi olarak gösterilen belirtilen Socket seçenek ayarını döndürür.

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Bir dizide belirtilen Socket seçeneğin değerini döndürür.

GetSocketOption(SocketOptionLevel, SocketOptionName)

Nesne olarak gösterilen belirtilen Socket seçeneğin değerini döndürür.

GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs

Bayt dizisi olarak gösterilen belirtilen Socket seçenek ayarını döndürür.

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

Parametreler

optionLevel
SocketOptionLevel

Değerlerden SocketOptionLevel biri.

optionName
SocketOptionName

Değerlerden SocketOptionName biri.

optionValue
Byte[]

Seçenek ayarını alacak türde Byte bir dizi.

Özel durumlar

Yuvaya erişmeye çalışılırken bir hata oluştu.

-veya-

.NET Compact Framework uygulamalarında varsayılan Windows CE arabellek alanı 32768 bayt olarak ayarlanır. çağrısı SetSocketOptionyaparak yuva başına arabellek alanını değiştirebilirsiniz.

Örnekler

Aşağıdaki kod örneği ve Send zaman aşımı değerlerini alır LingerOption ve konsolda görüntüler.

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

Açıklamalar

Socket seçenekleri geçerli Socketöğesinin davranışını belirler. Bu yöntemin başarıyla tamamlanmasının ardından parametresi tarafından optionValue belirtilen dizi belirtilen Socket seçeneğin değerini içerir.

Dizinin uzunluğu belirtilen Socket seçeneğin optionValue değerini depolamak için gereken bayt sayısından küçükse, GetSocketOption bir SocketExceptionoluşturur. bir alırsanız, belirli bir SocketExceptionhata kodunu almak için özelliğini kullanın SocketException.ErrorCode . Bu kodu aldıktan sonra, hatanın ayrıntılı açıklaması için Windows Yuvaları sürüm 2 API hata kodu belgelerine bakın. Boole değerleri veya tamsayılarla temsil edilen yuvalar için bu aşırı yüklemeyi kullanın.

Not

Uygulamanızda ağ izlemeyi etkinleştirdiğinizde, bu üye izleme bilgilerini çıkarır. Daha fazla bilgi için bkz. .NET Framework'da Ağ İzleme.

Ayrıca bkz.

Şunlara uygulanır

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs

Bir dizide belirtilen Socket seçeneğin değerini döndürür.

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

Parametreler

optionLevel
SocketOptionLevel

Değerlerden SocketOptionLevel biri.

optionName
SocketOptionName

Değerlerden SocketOptionName biri.

optionLength
Int32

Beklenen dönüş değerinin bayt cinsinden uzunluğu.

Döndürülenler

Byte[]

Yuva seçeneğinin değerini içeren tür Byte dizisi.

Özel durumlar

Yuvaya erişmeye çalışılırken bir hata oluştu.

-veya-

.NET Compact Framework uygulamalarında varsayılan Windows CE arabellek alanı 32768 bayt olarak ayarlanır. çağrısı SetSocketOptionyaparak yuva başına arabellek alanını değiştirebilirsiniz.

Örnekler

Aşağıdaki kod örneği ve Send zaman aşımı değerlerini alır LingerOption ve konsolda görüntüler.

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

Açıklamalar

parametresi, optionLength döndürülen bayt dizisinin boyut üst sınırını ayarlar. Seçenek değeri daha az bayt gerektiriyorsa, dizi yalnızca bu kadar bayt içerir. Seçenek değeri daha fazla bayt gerektiriyorsa, GetSocketOption bir SocketExceptionoluşturur. Boole değerleri veya tamsayılarla temsil edilen yuvalar için bu aşırı yüklemeyi kullanın.

Not

bir alırsanız, belirli bir SocketExceptionhata kodunu almak için özelliğini kullanın SocketException.ErrorCode . Bu kodu aldıktan sonra, hatanın ayrıntılı açıklaması için Windows Yuvaları sürüm 2 API hata kodu belgelerine bakın.

Not

Uygulamanızda ağ izlemeyi etkinleştirdiğinizde, bu üye izleme bilgilerini çıkarır. Daha fazla bilgi için bkz. .NET Framework'da Ağ İzleme.

Ayrıca bkz.

Şunlara uygulanır

GetSocketOption(SocketOptionLevel, SocketOptionName)

Kaynak:
Socket.cs
Kaynak:
Socket.cs
Kaynak:
Socket.cs

Nesne olarak gösterilen belirtilen Socket seçeneğin değerini döndürür.

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

Parametreler

optionLevel
SocketOptionLevel

Değerlerden SocketOptionLevel biri.

optionName
SocketOptionName

Değerlerden SocketOptionName biri.

Döndürülenler

Seçeneğin değerini temsil eden bir nesne. optionName parametre dönüş değerine ayarlandığında Linger sınıfının bir örneğidirLingerOption. optionName veya DropMembershipolarak ayarlandığındaAddMembership, dönüş değeri sınıfının bir örneğidirMulticastOption. Başka bir değer olduğunda optionName , dönüş değeri bir tamsayıdır.

Özel durumlar

Yuvaya erişmeye çalışılırken bir hata oluştu.

-veya-

optionName desteklenmeyen değerine MaxConnectionsayarlanmıştır.

Örnekler

Aşağıdaki kod örneği ve Send zaman aşımı değerlerini alır LingerOption ve konsolda görüntüler.

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

Açıklamalar

Socket seçenekleri geçerli Socketöğesinin davranışını belirler. , AddMembershipve DropMembershipSocket seçeneklerini almak Lingeriçin bu aşırı yüklemeyi kullanın. Linger seçeneği için parametresini optionLevel kullanınSocket. ve DropMembershipiçin AddMembership kullanınIP. Yukarıda listelenen seçeneklerden herhangi birinin değerini ayarlamak istiyorsanız yöntemini kullanın SetSocketOption .

Not

bir alırsanız, belirli bir SocketExceptionhata kodunu almak için özelliğini kullanın SocketException.ErrorCode . Bu kodu aldıktan sonra, hatanın ayrıntılı açıklaması için Windows Yuvaları sürüm 2 API hata kodu belgelerine bakın.

Not

Uygulamanızda ağ izlemeyi etkinleştirdiğinizde, bu üye izleme bilgilerini çıkarır. Daha fazla bilgi için bkz. .NET Framework'da Ağ İzleme.

Ayrıca bkz.

Şunlara uygulanır