On Sat, Apr 28, 2001 at 01:01:50PM +0700, Yohanes Nugroho wrote:
> > BTW, sepertinya ini tidak berhubungan langsung dengan pertanyaan.
> > setsockopt() setahu saya untuk bisa melakukan multiple listen() pada
> > satu socket ...
> 
> benar

ups.. sorry, saya salah ternyata :-)

> programnya gagal waktu bind karena portnya sudah terpakai, kalau
> portnya di reuse programnya bisa membind port yang sama jadi tetap bisa
> jalan kalau dijalankan 2 kali. Socket desc yang berbeda nggak pengaruh
> untuk proses bind.

Yup. khusus untuk tcp, selama ada proses aktif yang listen() di
(local) address yang sama, maka bind() akan gagal. Dalam hal ini
SO_REUSEADDR hanya berfungsi dalam hal: proses 'parent' yang
melakukan listen() berhenti, tetapi masih ada child yang aktif di
(local) address yang sama.

Jadi dalam hal ini melacaknya sbb: waktu 'macet' stop server,
jalankan 'netstat -tnl', kalau masih ada yang listen di (local)
address yang sama, option SO_REUSEADDR tidak akan membantu.

BTW, nampaknya penggunaan option SO_REUSEADDR untuk tcp server boleh
dibilang good practice ya .. ini karena saya lihat semua aplikasi tcp
server pakai option ini :-)

Salam,

P.Y. Adi Prasaja


--------------------------------------------------------------------------------
Utk berhenti langganan, kirim email ke [EMAIL PROTECTED]
Informasi arsip di http://www.linux.or.id/milis.php3
Pengelola dapat dihubungi lewat [EMAIL PROTECTED]

Kirim email ke