Struktur LINGER (winsock.h)

Struktur linger mempertahankan informasi tentang soket tertentu yang menentukan bagaimana soket tersebut harus bereaksi ketika data diantrekan untuk dikirim dan fungsi closesocket dipanggil pada soket.

Sintaks

typedef struct linger {
  u_short l_onoff;
  u_short l_linger;
} LINGER, *PLINGER, *LPLINGER;

Anggota

l_onoff

Jenis: u_short

Menentukan apakah soket harus tetap terbuka untuk waktu tertentu setelah panggilan fungsi closesocket untuk mengaktifkan data antrean yang akan dikirim. Anggota ini bisa memiliki salah satu nilai berikut.

Nilai Makna
0
Soket tidak akan tetap terbuka. Ini adalah nilai yang ditetapkan jika fungsi setsockopt dipanggil dengan parameter optname yang diatur ke SO_DONTLINGER dan parameter optval adalah nol.

Nilai ini juga diatur jika fungsi setsockopt dipanggil dengan parameter optname diatur ke SO_LINGER dan struktur hidup yang diteruskan dalam parameter optval memiliki anggota l_onoff diatur ke 0.

bukan nol
Soket akan tetap terbuka untuk jumlah waktu tertentu. Nilai ini diatur jika fungsi setsockopt dipanggil dengan parameter optname diatur ke SO_DONTLINGER dan parameter optval bukan nol.

Nilai ini juga diatur jika fungsi setsockopt dipanggil dengan parameter optname diatur ke SO_LINGER dan struktur hidup yang diteruskan dalam parameter optval memiliki anggota l_onoff yang diatur ke nilai bukan nol.

l_linger

Jenis: u_short

Waktu yang lama dalam hitung detik. Anggota ini menentukan berapa lama untuk tetap terbuka setelah panggilan fungsi closesocket untuk memungkinkan data antrean dikirim. Anggota ini hanya berlaku jika anggota l_onoff struktur yang masih ada diatur ke nilai bukan nol.

Nilai ini diatur jika fungsi setsockopt dipanggil dengan parameter optname diatur ke SO_LINGER. Parameter optval yang diteruskan ke fungsi setsockopt harus berisi struktur linger yang disalin ke struktur internal linger yang dipertahankan untuk soket.

Keterangan

Anggota l_onoff struktur linger menentukan apakah soket harus tetap terbuka selama jangka waktu tertentu setelah panggilan fungsi closesocket untuk memungkinkan data antrean dikirim. Agak membingungkan adalah bahwa anggota ini dapat dimodifikasi dengan dua cara:

  • Panggil fungsi setsockopt dengan parameter optname yang diatur ke SO_DONTLINGER. Parameter optval menentukan bagaimana anggota l_onoff dimodifikasi.
  • Panggil fungsi setsockopt dengan parameter optname diatur ke SO_LINGER. Parameter optval menentukan bagaimana anggota l_onoff dan l_linger dimodifikasi.

Anggota l_linger struktur linger menentukan jumlah waktu, dalam detik, soket harus tetap terbuka. Anggota ini hanya berlaku jika anggota l_onoff struktur yang masih ada bukan nol.

Untuk mengaktifkan soket agar tetap terbuka, aplikasi harus mengatur anggota l_onoff ke nilai bukan nol dan mengatur anggota l_linger ke waktu habis yang diinginkan dalam detik. Untuk menonaktifkan soket agar tidak tetap terbuka, aplikasi hanya perlu mengatur anggota l_onoff dari struktur yang masih ada ke nol.

Jika aplikasi memanggil fungsi setsockopt dengan parameter optname diatur ke SO_DONTLINGER untuk mengatur anggota l_onoff ke nilai bukan nol, nilai untuk anggota l_linger tidak ditentukan. Dalam hal ini, waktu habis yang digunakan tergantung pada implementasi. Jika waktu habis sebelumnya telah ditetapkan untuk soket (dengan mengaktifkan SO_LINGER), nilai batas waktu ini harus dikembalikan oleh penyedia layanan.

Perhatikan bahwa mengaktifkan batas waktu bukan nol pada soket nonblocking tidak disarankan.

Fungsi getsockopt dapat dipanggil dengan parameter optname diatur ke SO_LINGER untuk mengambil nilai saat ini dari struktur linger yang terkait dengan soket.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Header winsock.h (termasuk Winsock2.h)

Lihat juga

Shutdown Anggun, Opsi Linger, dan Penutupan Soket

closesocket

getsockopt

setsockopt