Re: Socket Rework Complete
| From: | Jason Greene | Date: | Fri, 08 Mar 2002 19:31:58 +0000 |
| Subject: | Re: Socket Rework Complete | ||
| References: | 1 2 3 4 5 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-80943@lists.php.net to get a copy of this message | ||
I would be happy to help in any way possible.
Your source wasn't attached though. Would you like an example?
(That or you can resend your source)
-Jason
On Fri, 2002-03-08 at 13:10, J Smith wrote:
>
> Speaking of the FD_* macros and such, I'm trying to visualize how to
> re-write some code that I have that relies on the socket_fd_* functions. If
> you get the chance, could you look over this simplified version of what I'm
> doing and point me towards the proper direction to get it working with the
> new API. I want to have this stuff ready when PHP 4.2 or 4.3 come out, and
> seeing as you're the one closest to the sockets extension, I thought you
> could give me some pointers as to how it would work with the abscence of
> the sockets_fd_* functions. (I'm a little confused what to do without the
> FD_* stuff. This could make for a good example in the documentation,
> anyways, if it works as hoped.)
>
> Attached is the stripped-down source.
>
> J
>
>
> Jason Greene wrote:
>
> >
> > The correct behavior that is consistent with the API follows(that I am
> > planning):
> > Set retval of socket_select() to be the number of file descriptors
> > available. If error occurs set to false.
> >
> > Using the c-api one commonly writes code like this
> > --------------------------------------------------
> > Error on an actual error or no sockets available:
> >
> > ret=select(rfds, NULL, NULL, &tv);
> > if (ret < 0)
> > error_func();
> >
> > Error differently:
> >
> > ret=select(rfds, NULL, NULL, &tv);
> > if (ret == -1)
> > error_sys();
> > if (ret == 0)
> > error_noavail();
> >
> >
> > The equiv in php using false:
> > ------------------------------
> >
> > Error on an actual error or no sockets available:
> >
> > $ret=socket_select($rfds, NULL, NULL, 1);
> > if (ret == 0)
> > error_func();
> >
> > Error differently:
> >
> > $ret=socket_select($rfds, NULL, NULL, 1);
> > if (ret === FALSE)
> > error_sys();
> > if (ret === 0)
> > error_noavail();
> >
> >
> >> According to the man file:
> >>
> >
> >> (Although without the functions equivalent
> >> to the FD_* macros', the extension as a whole is getting pretty far
> >> removed from the standard sockets library as it is.)
> >>
> >> J
> >
> > Yes, the goal is to follow a more php like behavior. Those who follow
> > the C-API will have some slight adjusting to, but the beauty of the
> > high-level language is that we can automate and simplify the
> > functionality.
> >
> > This also makes it easier for people who don't know C to pickup the
> > functionality.
> >
> > -Jason
> >> --
> >> PHP Development Mailing List
> >> <http://www.php.net/>
> >> To unsubscribe, visit: http://www.php.net/unsub.php
> >>
>
>
> --
> PHP Development Mailing List <http://www.php.net/>
> To unsubscribe, visit: http://www.php.net/unsub.php
>
--
Jason T. Greene
Internet Software Engineer
<jason@inetgurus.net>
<jason@php.net>
<jason.greene@tdstelecom.com>
Use PHP: http://www.php.net