Bagikan melalui


Socket.GetSocketOption Metode

Definisi

Mengembalikan nilai Socket opsi.

Overload

GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Mengembalikan pengaturan opsi yang ditentukan Socket , yang dinyatakan sebagai array byte.

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Mengembalikan nilai opsi yang ditentukan Socket dalam array.

GetSocketOption(SocketOptionLevel, SocketOptionName)

Mengembalikan nilai opsi yang ditentukan Socket , yang dinyatakan sebagai objek.

GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Sumber:
Socket.cs
Sumber:
Socket.cs
Sumber:
Socket.cs

Mengembalikan pengaturan opsi yang ditentukan Socket , yang dinyatakan sebagai array 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())

Parameter

optionLevel
SocketOptionLevel

Salah SocketOptionLevel satu nilai.

optionName
SocketOptionName

Salah SocketOptionName satu nilai.

optionValue
Byte[]

Array jenis Byte yang menerima pengaturan opsi.

Pengecualian

Terjadi kesalahan saat mencoba mengakses soket.

-atau-

Dalam aplikasi .NET Compact Framework, ruang buffer default Windows CE diatur ke 32768 byte. Anda dapat mengubah ruang buffer per soket dengan memanggil SetSocketOption.

Contoh

Contoh kode berikut mengambil LingerOption nilai dan Send waktu habis dan menampilkannya ke konsol.

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

Keterangan

Socket opsi menentukan perilaku saat ini Socket. Setelah berhasil menyelesaikan metode ini, array yang ditentukan oleh optionValue parameter berisi nilai opsi yang ditentukan Socket .

Ketika panjang optionValue array lebih kecil dari jumlah byte yang diperlukan untuk menyimpan nilai opsi yang ditentukan Socket , GetSocketOption akan melemparkan SocketException. Jika Anda menerima SocketException, gunakan SocketException.ErrorCode properti untuk mendapatkan kode kesalahan tertentu. Setelah Anda mendapatkan kode ini, lihat dokumentasi kode kesalahan API Windows Sockets versi 2 untuk deskripsi terperinci tentang kesalahan tersebut. Gunakan kelebihan beban ini untuk soket apa pun yang diwakili oleh nilai atau bilangan bulat Boolean.

Catatan

Anggota ini mengeluarkan informasi pelacakan saat Anda mengaktifkan pelacakan jaringan di aplikasi Anda. Untuk informasi selengkapnya, lihat Pelacakan Jaringan di .NET Framework.

Lihat juga

Berlaku untuk

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Sumber:
Socket.cs
Sumber:
Socket.cs
Sumber:
Socket.cs

Mengembalikan nilai opsi yang ditentukan Socket dalam array.

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

Parameter

optionLevel
SocketOptionLevel

Salah SocketOptionLevel satu nilai.

optionName
SocketOptionName

Salah SocketOptionName satu nilai.

optionLength
Int32

Panjangnya, dalam byte, dari nilai pengembalian yang diharapkan.

Mengembalikan

Byte[]

Array jenis Byte yang berisi nilai opsi soket.

Pengecualian

Terjadi kesalahan saat mencoba mengakses soket.

-atau-

Dalam aplikasi .NET Compact Framework, ruang buffer default Windows CE diatur ke 32768 byte. Anda dapat mengubah ruang buffer per soket dengan memanggil SetSocketOption.

Contoh

Contoh kode berikut mengambil LingerOption nilai dan Send waktu habis dan menampilkannya ke konsol.

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

Keterangan

Parameter optionLength menetapkan ukuran maksimum array byte yang dikembalikan. Jika nilai opsi memerlukan lebih sedikit byte, array hanya akan berisi banyak byte. Jika nilai opsi memerlukan lebih banyak byte, GetSocketOption akan melempar .SocketException Gunakan kelebihan beban ini untuk soket apa pun yang diwakili oleh nilai atau bilangan bulat Boolean.

Catatan

Jika Anda menerima SocketException, gunakan SocketException.ErrorCode properti untuk mendapatkan kode kesalahan tertentu. Setelah Anda mendapatkan kode ini, lihat dokumentasi kode kesalahan API Windows Sockets versi 2 untuk deskripsi terperinci tentang kesalahan tersebut.

Catatan

Anggota ini mengeluarkan informasi pelacakan saat Anda mengaktifkan pelacakan jaringan di aplikasi Anda. Untuk informasi selengkapnya, lihat Pelacakan Jaringan di .NET Framework.

Lihat juga

Berlaku untuk

GetSocketOption(SocketOptionLevel, SocketOptionName)

Sumber:
Socket.cs
Sumber:
Socket.cs
Sumber:
Socket.cs

Mengembalikan nilai opsi yang ditentukan Socket , yang dinyatakan sebagai objek.

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

Parameter

optionLevel
SocketOptionLevel

Salah SocketOptionLevel satu nilai.

optionName
SocketOptionName

Salah SocketOptionName satu nilai.

Mengembalikan

Objek yang mewakili nilai opsi. optionName Ketika parameter diatur ke Linger nilai yang dikembalikan adalah instans LingerOption kelas . Ketika optionName diatur ke AddMembership atau DropMembership, nilai yang dikembalikan adalah instans MulticastOption kelas . Ketika optionName adalah nilai lain, nilai yang dikembalikan adalah bilangan bulat.

Pengecualian

Terjadi kesalahan saat mencoba mengakses soket.

-atau-

optionName diatur ke nilai MaxConnectionsyang tidak didukung .

Contoh

Contoh kode berikut mengambil LingerOption nilai dan Send waktu habis dan menampilkannya ke konsol.

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

Keterangan

Socket opsi menentukan perilaku saat ini Socket. Gunakan kelebihan beban ini untuk mendapatkan Lingeropsi , AddMembership, dan DropMembershipSocket . Linger Untuk opsi , gunakan Socket untuk optionLevel parameter . Untuk AddMembership dan DropMembership, gunakan IP. Jika Anda ingin mengatur nilai salah satu opsi yang tercantum di atas, gunakan metode .SetSocketOption

Catatan

Jika Anda menerima SocketException, gunakan SocketException.ErrorCode properti untuk mendapatkan kode kesalahan tertentu. Setelah Anda mendapatkan kode ini, lihat dokumentasi kode kesalahan API Windows Sockets versi 2 untuk deskripsi terperinci tentang kesalahan tersebut.

Catatan

Anggota ini mengeluarkan informasi pelacakan saat Anda mengaktifkan pelacakan jaringan di aplikasi Anda. Untuk informasi selengkapnya, lihat Pelacakan Jaringan di .NET Framework.

Lihat juga

Berlaku untuk