Socket.GetSocketOption Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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.
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.
Sudah Socket ditutup.
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
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.
Sudah Socket ditutup.
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 .
Sudah Socket ditutup.
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.