[linux-programlama] Re: php socket read

---------

From: Serdar KÖYLÜ (serdarkoylu@fisek.com.tr)
Date: Thu 24 Jun 2004 - 10:34:27 EEST


Selamlar..

Bu tur vaziyetlerde blocked IO pek makbul degildir. Makul olan daha
ziyade asenkron soket okuma olabilir. Basitce socket_set_nonblock
ile bakmak bile faydali olacaktir. Elbette bu durumda bir de
socket_select ile gelen giden var mi bakmak yerinde olur.

PHP ile hic yapmadim, manualleri filan karistirmak vs. yerine size daha
iyi bir yontem tavsiye edeyim.

Mumkunse, bu isi C (tercihan) ile yazilmis bir processle halledin. Onu
daemon olarak calistirin, oteki cihazla hasbihal etsin. Siz onunla
mesela shmem uzerinden haberlesin. Tamam, bazi race condition'lar
olacaktir, ama bunlari cozmek o kadar guc olmaz.

PHP pek fazla bu tur isler icin dizayn edilmiş degil.

Saygi ve sevgiler..

> merhaba,
>
> On Wed, Jun 23, 2004 at 05:16:06PM +0300, Enver ALTIN wrote:
> > kendi socket_read() wrapper'ini yaz?p birer byte'l?k par?alarla okutup
> > gelen her byte'?n i?eri?ine g?re devam? olup olmad???na karar verebilir,
> > ona g?re davranmas?n? sa?layabilirsin.
>
> yanlis anlamadiysam kastiniz su sekilde:
>
> $temp = '';
> foreach ( range(1, $gelecekVerininUzunlugu) as $tempVal ) {
> $output = socket_read($socket, 1, PHP_BINARY_READ);
> // iste siz tam buradan gelecek veriye gore devam edip
> // etmeyecegimi belirleyecegimi soylemissiniz.
> // ama zaten benim sorunum da burada.
> // ah keske ben bu adimi gecsem de bos veri geldigini
> // anlasam. burada takilip kaliyorum...
> if ( <gerekli_ifade> )
> $temp .= $output;
> }
>
> umarim dogru anlamisimdir,
> iyi calismalar
>
> -------------------------------------------------
> This mail sent through IMP: http://webmail.students.itu.edu.tr
>
>


---------

Bu arsiv hypermail 2.1.7 tarafindan uretilmistir.