> 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
