Bagikan melalui


LingerOption.LingerTime Properti

Definisi

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.

Berlaku untuk