On 07:32 pm, jmellan...@lbl.gov wrote:
Thanks, I realized that even if I found out relevant info on the
socket, I would probably need to use ctypes to provide a low level
interface to select, as the socket wouldn't be a python socket object,
unless there is some way to promote a c socket to a python socket
object.
Appreciate the info, folks.
There are a few options to help with that part of it:
* select() works with integer file descriptors
* socket.socket.fromfd gives you a socket object from an integer file
descriptor
* os.read and os.write let you read and write directly on file
descriptors (although it sounds like you might not need this)
Jean-Paul
On Thu, Sep 30, 2010 at 7:14 AM, Jean-Paul Calderone
<exar...@twistedmatrix.com> wrote:
On Sep 29, 4:08�pm, Jim Mellander <jmellan...@lbl.gov> wrote:
On Wed, Sep 29, 2010 at 11:05 AM, Gary Herron <gher...@digipen.edu>
wrote:
> On 09/29/2010 09:50 AM, Jim Mellander wrote:
>> Hi:
>> I'm a newbie to python, although not to programming. Briefly, I
am
>> using a binding to an external library used for communication in a
>> client-server context, with the server in python. Typically, I
would
>> set this up with event callbacks, and then enter a select loop,
which,
>> most the time idles and processes input events when the socket
shows
>> activity, kinda like:
>> while True:
>> � � socket.select((my_socket),(),())
>> � � process_event()
>> Unfortunately, the API does not expose the socket to the script
level,
>> and the developer recommends a busy loop:
>> while True:
>> � � sleep(1)
>> � � process_event()
>> which I hope to avoid, for many reasons. If the socket can be
exposed
>> to the script level, then the problem would be solved.
>> Failing that, it would be nice to be able to pythonically
determine
>> the sockets in use and select on those. �Does anyone have any
>> suggestions on how to proceed?
>> Thanks in advance
> It's certain that any answer to this will depend on which operating
system
> you are using. �So do tell: What OS?
Hi Gary:
Certainly not windows.... �I'm developing on OS/X but for production
probably Linux and FreeBSD
(I'm hoping for something a bit more portable than running 'lsof' and
parsing the output, but appreciate any/all advice)
Linux has /proc/self/fd and OS X has /dev/fd. �Those both suppose you
have some way of determining which file descriptor corresponds to the
socket or sockets that the library is using, of course. �Vastly better
would be to convince the author to expose that information via a real
API.
Jean-Paul
--
http://mail.python.org/mailman/listinfo/python-list
--
http://mail.python.org/mailman/listinfo/python-list