fsockopen, and remaining data in buffer
| From: | Demitrious S. Kelly | Date: | Thu, 09 May 2002 19:59:58 +0000 |
| Subject: | fsockopen, and remaining data in buffer | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-96862@lists.php.net to get a copy of this message | ||
Hello Guys!
I'm having troubles with not knowing the amount of data which is waiting
to be received in the buffer for a specific socket I can use fsockopen,
establish a connection, and write to the socket, I can read from the
socket just fine as well. The trouble I'm running into is illustrated in
this example
Eg: Open a socket to an ftp site (port 21). I can expect a banner from
EG: the ftp server, but this is not always the case. if there is a
EG: banner it is usually only one line, but this is not always the case.
EG: I can then fputs($fp, 'user anonymous'.chr(10)); After that fputs I
EG: can expect one line to be in the buffer. I then fputs($fp, 'pass
EG: anonymsou@email.com'.chr(10)); There can then be anything from 0 to
EG: (lots) of bytes in the buffer, spanning multiple lines.
I want to be able to pull all of the waiting information out of the
socket, process it, and then proceed - not knowing the amount of data to
expect. A while( $data=fgets($fp, 9999) ) works, but either a) hangs
when there is no more data to receive, or b) times the socket out when a
socket timeout on the file pointer is used, or c) is VERY unreliable
when the socket is set to non-blocking mode. I've tried using
$var=socket_get_status($fp), but then $var['unread_bytes'] is always 0
or null... Am I missing something?
The development server is running slackware 8, kernel 2.4.18,
apache-1.3.24, and php 4.2
I'll send sample code if asked, Thanks in advance for the help!
------------------------------------------------------------------------
-
-- Demitrious S. Kelly
-- Eagle Networks
------------------------------------------------------------------------
-
------------------------------------------------------------------------
-
-- Demitrious S. Kelly
-- Eagle Networks
------------------------------------------------------------------------
-