Saya pernah bikin sniffer ..tapi di Windows
konsepnya sama seperti mas Andrew..
kita bisa menggunakan "bounded buffer"

namun , rasanya kok ada cara yg lebih mudah ya
pake  API message queue di Linux saja..
tidak repot2 , harus bikin buffer dan sinkronisasi

capture_engine -----> queue ----> processor

----- Original Message -----
From: "Andrew Hadinyoto" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Sunday, February 13, 2005 4:35 PM
Subject: Re: [linux-programming] Thread di C/C++


> Hi,
>
> durung_lulus wrote:
>
> > memang sepertinya ada hubungan dengan time slice dari OS-nya, dan
> > sayangnya saya ngga tahu cara setting timeslice ini.  Kebetulan saya
> > make freebsd 5.1.
> >
> > Sebenarnya permasalahan saya seperti ini, saya membuat 2 buah program.
> > program pertama adalah sniffer, yang selalu menyimpan packet yang datang
> > dari eth kedatabase/file/memory. Dan process ini harus meminimalisasi
> > packet loss, karena akan sangat berpengaruh pada program yang kedua.
> >
> > Program yang kedua akan berjalan, jika sebuah koneksi telah berakhir dan
> > melakukan analisa koneksi yang berakhir tersebut. Berhubung pada tahap
> > ini processnya cukup banyak perhitungan matematis, maka jika menggunakan
> > loop program bagian pertama akan ketinggalan dalam menangkap paket, dan
> > dapat membuat program kedua salah dalam analisa.
> >
> > Mungkin ada masukan gimana enaknya metode untuk invoke/signalling
> > program ke-2?
>
> Anda perlu metode sinkronisasi "Producer/Consumer" atau dikenal juga
> sebagai "Bounded Buffer".
>
> Intinya, anda pake semacam buffer, lalu buffer tersebut di sinkronisasi.
> Program pertama sniff lalu datanya disimpan di buffer. Program kedua
> ngebaca dari buffer tersebut.
> Kalo buffer lagi kosong - program no. 2 di-block (berhenti)
> Kalo buffer ada isisnya - program no. 2 disignal utk memprosess
> Kalo buffer-nya penuh - program no. 1 di-block (mungkin dalam kasus
> anda, sniffernya berhenti sniff dulu).
>
> Utk thread, anda bisa lihat di: man pthread_cond_wait (dan kawan2)
> Kalo pake interprocess communication: man sem_wait (dan kawan2)
>
> Salam,
> Andrew...
>
>
>
> --
> Berhenti langganan: [EMAIL PROTECTED]
> Arsip dan info: http://linux.or.id/milis.php


-- 
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis.php

Kirim email ke