Determine sockets in use by python

Jim Mellander jmellander at lbl.gov
Thu Sep 30 21:32:45 CEST 2010


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.

On Thu, Sep 30, 2010 at 7:14 AM, Jean-Paul Calderone
<exarkun at twistedmatrix.com> wrote:
> On Sep 29, 4:08 pm, Jim Mellander <jmellan... at lbl.gov> wrote:
>>
>> On Wed, Sep 29, 2010 at 11:05 AM, Gary Herron <gher... at 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
>



More information about the Python-list mailing list