As I said, you're probably better off with fsockopen() anyway. Remember, the oure socket functions are experimental (or at least were last time I checked that part of the manual) and you never really know with experimental things. As well, they may change at any time, rendering your scripts useless on later versions of PHP.
The Network functions, as classified in the manual, are very solid and widely supported. If it works the way you want it to with one method, why recreate your own wheel? Mike Frazer "Evan Nemerson" <[EMAIL PROTECTED]> wrote in message [EMAIL PROTECTED]">news:[EMAIL PROTECTED]... > That's the first thing I tried- doesn't work with the lower-level sockets. > (the socket_* functions) > > Right now I have an fsockopen version, and I'm commenting out the socket > version- hopefully I'll be able to get it to work later. > > Thanks, but do you have any other ideas??? > > > -Evan > > > > > > > On Monday 04 February 2002 14:53, you wrote: > > I've found fsockopen to be very reliable. I've done a few socket scripts > > with PHP (WhoisPro, et al). > > > > I believe the easiest way to check for a remotely closed socket is to do an > > fgets() and check for EOF: > > > > while (!feof($connection)) { > > $buffer .= fgets($connection, 4096); // 4096 is the chunk size, you > > can adjust it > > } > > > > I *think* EOF on a socket deonotes a remote socket close but I could be > > horribly wrong. > > > > Mike Frazer > > > > > > > > "Evan Nemerson" <[EMAIL PROTECTED]> wrote in message > > [EMAIL PROTECTED]">news:[EMAIL PROTECTED]... > > > > > I am aware of cURL, but I want to just use the standard PHP stuff if I > > > can because I plan on releasing this when I'm done, and want to KISS for > > > other people. > > > > > > I know people have to compile PHP with sockets, but they will anyways for > > > this project- I'm going to need socket_listen and socket_create_listen > > > > too. > > > > > This is for a proxy server which will work kinda like multiproxy, but > > > > should > > > > > be more powerful. It will support direct connections or going through > > > > another > > > > > proxy server. It seperates anonymous from non-anonymous proxy servers, > > > > then > > > > > sorts them by speed. Data is stored in tab seperated value text files > > > (I'm even avoiding mySQL!!!) > > > > > > I just signed up for a page @ sourceforge. If anyone is interesting in > > > helping out e-mail me. > > > > > > Thanks for the idea, though. I think right now my fall-back is fsockopen. > > > > I > > > > > would really love to get sockets working for this... > > > > > > On Sunday 03 February 2002 23:32, you wrote: > > > > A quick note... > > > > > > > > If you are not aware of cURL (curl.haxx.se), then you may want to look > > > > into > > > > > > it. > > > > > > > > If you are, then please disregard this post. > > > > > > > > -Jason Garber > > > > > > > > At 11:06 PM 2/3/2002 -0800, Evan Nemerson wrote: > > > > >Anyone know if there is a way yet to see if a socket is still > > > > > connected > > > > to > > > > > > > a host? I want to use a socket to send "GET / HTTP/1.0\r\n\r\n" over > > > > > a socket, and retrieve everything the server sends. That part works > > > > great, > > > > > > > but I can't figure out when the remote host disconnects. > > > > > > > > > >I have the CVS version of php. > > > > > > > > > >Here is the function so far. The problem is at the end. > > > > > > > > > > > > > > > > > > > >function getdata ($host, $port, $data) > > > > >{ > > > > > /* well, the below comment would be true if i could get it > > > > > working! */ > > > > > > > > > > /* This function sends $data to $host:$port, then returns the > > > > > response > > > > > * until connection is severed. Great for HTTP, but won't > > > > usually > > > > > > > work * too well in protocols where data needs to be analyzed, and > > > > replied > > > > > > > * to appropriatly, such as POP v3 */ > > > > > > > > > > // Create a socket > > > > > $so = socket_create (AF_INET, SOCK_STREAM, > > > > > getprotobyname("TCP")); if ( !$so ) > > > > > { > > > > > exit("Could not create socket.\n"); > > > > > } > > > > > > > > > > // Connect... > > > > > $ec = socket_connect ($so, $host, $port); > > > > > if ( $ec < 0 ) > > > > > { > > > > > exit ("ERROR $ec: ".socket_strerror($ec)); > > > > > } > > > > > > > > > > /* Write $data to socket. The manual doesn't say what it > > > > returns, > > > > > > > but I'll > > > > > * assume (even though it makes an ass out of you and me) that > > > > it > > > > > > > is the same > > > > > * as socket_connect() because it wouldn't be logical to > > > > > return > > > > a > > > > > > >descriptor. */ > > > > > $ec = socket_write ( $so, $data, ( strlen($data) )); > > > > > if ( $ec < 0 ) > > > > > { > > > > > exit ("ERROR $ec: ".socket_strerror($ec)); > > > > > } > > > > > else > > > > > { > > > > > /* PROBLEM IS HERE- what do I put instead of while ( > > > > $x > > > > > > > == 0 )??? */ > > > > > $x = 0; > > > > > while ( $x == 0 ) > > > > > { > > > > > $buffer = socket_read ( $so, 1, > > > > PHP_BINARY_READ); > > > > > > > $string .= $buffer; > > > > > } > > > > > } > > > > > > > > > > // And (hopefully) return $string, for your viewing pleasure. > > > > > return $string; > > > > >} > > > > > > > > > >-- > > > > >PHP General Mailing List (http://www.php.net/) > > > > >To unsubscribe, visit: http://www.php.net/unsub.php -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php