You are here: Re: UNIX Socket does not send data until closed « PHP Programming Language « IT news, forums, messages
Re: UNIX Socket does not send data until closed

Posted by C. on 07/25/07 11:53

On 24 Jul, 17:35, Chris <dr_christopher_hega...@hotmail.com> wrote:
> Hi,
>
> I am using PHP persistent sockets and have a problem with them. The
> problem is that PHP only sends the data when the socket is closed. In
> the code example below the counterparty process (peer) received the
> connect request from PHP, but then never receives the message sent in
> the "fwrite" command below - and consequently never generates the
> reply which should be read by the fgets command.
>
> Flushing the socketFP does not make any difference - the only thing
> that causes the data to be sent is to fclose it (which defeats the
> purpose of having persistent sockets, which I definitely need).
> ------------------ Code Sample -----------------------------------
> $SocketFP = pfsockopen("unix:///tmp/hs.socket",0,$errno,$errstr);
> if ($SocketFP == FALSE) {
> ... error handling
> }
>
> stream_set_timeout($SocketFP,2);
> stream_set_blocking($SocketFP,1);
> $Msg = sprintf("ConnectId %d\n\r",$OurId);
> $i =fwrite($SocketFP,$Msg);
> fflush($SocketFP);
>
> if ($i==FALSE) {
> ... error handling
> }
>
> $message = fgets($SocketFP);

stream_set_blocking($SocketFP,1);
- doesn't it open the socket in blocking mode anyway? (not sure how
much sense fflush() would make if it were non-blocking).

I suspect its not relevant, though ISR something about newlines and
flushes on streams - but your script above does have a newline char -
but normally where a line is terminated by a CR and LF, the CR comes
first. This may be a problem - I'd try with a different client but
don't know of a generic tool for Unix domain sockets - nc will work
for a TCP socket though.

I'd also suggest checking the value of $i and what fflush() returned.

HTH

C.

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация