Close a socket externally
drs at remove-to-send-mail-ecpsoftware.com
Sat Oct 2 02:26:09 CEST 2004
<bryanjugglercryptographer at yahoo.com> wrote in message
news:1096673569.579558.114260 at k26g2000oda.googlegroups.com...
> drs wrote:
> > I have a program which opens a socket server in a thread. I need for
> > server to listen on the socket for a certain amount of time (say, ten
> > seconds or so) and then close it, and am wondering if there is a good
> way to
> > close the socket other than sending it a message from another thread
> > close itself.
> Yes, you can either set a timeout on the socket, or use
> select.select() with a timeout. When waiting for new
> connections, a socket will select as readable when a new
> connection arrives.
> > That is, I am looking for a way to forcably kill a socket
> > from a second thread, not to send it a message to kill itself.
> The timeout/select solution is along different lines, but if I
> understood your initial statement of the problem, it's how most
> sockets programmers do that kind of thing.
My understanding of using a timeout is that the clock starts running only
when there is no communication. I actually need a hard limit on the time a
socket is open, and while the best option might be to at least allow the
current read/write cycle to complete, I am not necessarilly adverse to just
cutting off the socket.
To explain, I am working on an agent based modeling project where agents
communicate and exchange over TCP sockets. Agents have to "buy" the right
to open sockets, so I need an enforcement mechanism to shut them down when
their time expires.
I am not familiar w/ select, so i'll go look into that.
More information about the Python-list