Priyadi Iman Nurcahyo wrote:
> > Begini, saya membaca data dari remote server (POP3 server) dengan 'recv()'.
> > Tipe socketnya adalah SOCK_STREAM, dan saya membaca data fragmen-per
> > -fragmen (misalnya baca 8 byte, terus 8 byte lagi, ... dst).
> >
> > Q. Bagaimana caranya program saya tau bahwa sudah tidak ada data lagi yang
> > harus dibaca/ditunggu?
>
> ini tergantung dari protokol, dalam POP3 setiap email diakhiri dengan
> satu baris yang hanya berisi titik... program anda harus mencek ini...
>
yap..
cara yg. lebih mudah adalah pertama kali anda kirim perintah 'LIST'
untuk ngliat besar masing2 message, abis itu siapin untuk nerima
sebanyak itu..
or, bukannya kalau kita 'RETR', maka jawaban dari server adalah '+OK'
plus gede message? tapi kalo nggak salah, ini nggak standar ding,
CMIIW..
btw, menurut pengalaman saya, metoda ini juga nggak terlalu valid juga,
karena bbr. POP server akan mengembalikan size yg. tidak tepat.. tapi
lumayanlah buat perkiraan.. jadi solusi tepatnya mungkin terima sebanyak
size, lalu cek apakah karakter titik yg. sendirian itu (solusi Pri) udah
ada.
oya, sedikit hints, mungkin ada baiknya kalo recv. size-nya digedein
(bukan per 8 bytes), lets say, 1024 bytes? jadi kalopun ada kurang/lebih
dalam perkiraan vs pernerimaan, toleransinya lebih gede.
- BLP
______________________________________________________________________
Utk berhenti langganan kirim email ke [EMAIL PROTECTED]
Sudah cari di arsip? http://www.linux.or.id/milis.php3#arsip-id-linux
Utk info etika diskusi, kirim email kosong ke [EMAIL PROTECTED]