LingerOption.LingerTime Properti
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.
Mendapatkan atau mengatur jumlah waktu untuk tetap terhubung setelah memanggil Close() metode jika data tetap dikirim.
public:
property int LingerTime { int get(); void set(int value); };
public int LingerTime { get; set; }
member this.LingerTime : int with get, set
Public Property LingerTime As Integer
Nilai Properti
Jumlah waktu, dalam detik, untuk tetap terhubung setelah memanggil Close().
Contoh
Contoh berikut menampilkan nilai properti ini.
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
Gunakan nilai ini jika Anda ingin menentukan berapa lama tertutup Socket akan mencoba mentransfer data yang tidak dikirim sebelum waktu habis. Anda juga dapat mengatur nilai ini ke periode waktu habis yang diinginkan, dalam detik.
Enabled Jika properti adalah true
, dan Anda mengatur LingerTime ke 0, Socket membuang data yang tertunda untuk dikirim dalam buffer jaringan keluar. Jika Anda mengubah nilai ini, Anda harus meneruskan instans yang diubah LingerOption ke SetSocketOption metode atau mengatur LingerState properti atau LingerState .
Tabel berikut ini menjelaskan perilaku untuk kemungkinan nilai Enabled properti dan properti yang LingerTime disimpan di LingerState properti .
enable |
seconds |
Aktivitas |
---|---|---|
false (dinonaktifkan), nilai default |
Waktu habis tidak berlaku, (default). | Upaya untuk mengirim data yang tertunda untuk soket berorientasi koneksi (TCP, misalnya) hingga waktu habis protokol IP default kedaluwarsa. |
true (diaktifkan) |
Batas waktu nonzero | Mencoba mengirim data yang tertunda hingga waktu habis yang ditentukan berakhir, dan jika upaya gagal, Maka Winsock mengatur ulang koneksi. |
true (diaktifkan) |
Batas waktu nol. | Membuang data yang tertunda. Untuk soket berorientasi koneksi (TCP, misalnya), Winsock mengatur ulang koneksi. |
Tumpukan IP menghitung periode waktu habis protokol IP default untuk digunakan berdasarkan waktu pulang pergi koneksi. Dalam kebanyakan kasus, waktu habis yang dihitung oleh tumpukan lebih relevan daripada yang ditentukan oleh aplikasi. Ini adalah perilaku default untuk soket ketika LingerState properti tidak diatur.
Ketika properti yang LingerTime disimpan dalam LingerState properti diatur lebih besar dari waktu habis protokol IP default, waktu habis protokol IP default akan tetap berlaku dan menimpa.