Socket.GetSocketOption Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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.
Ö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.
Kapatılmış Socket .
Ö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
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.
Kapatılmış Socket .
Ö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.
Kapatılmış Socket .
Ö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.