> bisa tolong lebih diperjelas sedikit? masih bingung nih...
> katanya harus ngurangin jumlah paket, tapi kalo jumlah paket
> tambah banyak, kan berarti bandwidth terpakai makin banyak.
> padahal tujuannya kan utk penghematan penggunaan bandwidth.

Sebenarnya bukan jumlah paket yang kita kurangi tetapi jumlah data yang kita
kirimkan dalam satu waktu.
Begini, setiap kita mengirimkan data melalui send(..), socket akan
mengirimkan data melalui TCP/IP stack dimana data kita dikirimkan dalam
bentuk paket, dan paket yang dikirim tidak hanya data kita saja, tetapi juga
header, acknowledgement, dll. Kita asumsikan beban terbesar hanya pada paket
yang memuat data kita (agar lebih mudah memahami).
Dengan demikian paket yang terkirim mempunyai total byte yg sama dengan
total byte data yang kita kirim.
Jika kita membatasi jumlah data yang kita kirim dalam satu waktu, misal:
kita hanya mengirim data sebesar 100 Kb untuk tiap 1 detik, maka, akan sama
saja dengan kita membatasi pemakaian bandwith pada 100Kb/sec. Walaupun
dengan demikian kita akan memerlukan waktu yang lebih lama untuk mengirimkan
semua data kita.
Dengan pembatasan seperti diatas, maka kita akan memberi peluang pada
jaringan kita (misal: router) untuk memproses data dari PC yang lainnya saat
kita mendelay pengiriman data kita.

> maksud blocking socket ini artinya proses di"blok", hingga
> tdk bisa melakukan proses lain ya?
>

Ada 2 macam mode yang dikenal di socket, yaitu: blocking socket dan
Asynchronous socket.
Jika anda memakai Windows, kebanyakan anda akan disarankan untuk memakai
Asynchronous socket ketimbang blocking socket.
Sebagai contoh, ICS lebih banyak memakai Async socket dan Indy memakai
blocking socket.
Jika anda memakai blocking socket, maka proses send() atau recv() akan
diblock bila socket belum siap untuk mengirimkan data atau belum bisa
menerima data.
Kalau "diblock" anda memang tidak bisa melakukan proses yang lainnya, tetapi
hal ini bisa diatasi dengan memakai Multi-Thread. Atau bisa juga dengan
menghindari blocking dengan cara melakukan testing apakah socket sudah siap
mengirim atau menerima, coba baca referensi socket untuk fungsi-fungsi test
semacam ini.
Sebaliknya, jika anda memakai Async socket anda tidak akan mengalami
"blocking".

> pake timer? gelap.... tolong diperjelas donk :)
>

Saat anda mengirimkan socket dengan send(), anda bisa memeperoleh info
berapa banyak byte yang sudah dikirim, nah bila anda memakai TTimer (pada
delphi) start-lah timer sebelum anda mengirim data, set timer misal sebesar
1 detik. Pada timer event handler anda bisa menghitung berapa total byte
yang sudah terkirim, bila belum memenuhi kuota anda bisa mengirimnya lagi.

Kalau belum jelas silakan bertanya lagi, lagian penjelasan dengan email
semacam ini memang agak sulit :)

Best Regards

jagad


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

Kirim email ke