[Tutor] Exception thrown by socket.recv() and whacking threads (original) (raw)

Jeroen Vogelpoel n.a.vogelpoel at chello.nl
Wed Jul 7 16:26:39 CEST 2004


Good day,

I'm currently busy with a script that involves some simple multithreading and sockets, however, I've run into some minor problems regarding exception handling and shutting down/killing threads. Here is a simple snippet of code with some of the relevant code:

=== def run( self ): if self.boolConnected == False: return 0 while True: try: strReceived = self.socket.recv( 1024 ) except Exception: exit() else: self.intTotalBytesRecv += len( strReceived ) self.strBuffer += strReceived for strMessage in self._parseNewlines(): self.funcOutput( strMessage )

socket.recv() throwns an Exception "error" when the socket is being disconnected if it's still trying to read from the socket. Is there not a nice and clean way to catch and handle "error" exceptions, other then catching "Exception"? Besides, I'd expect an "IOError" when reading from a disconnected socket, not some uncatchable semi-exception thingamajig... What gives?

Also, I wonder wether it's possible to shut down/kill threads ( threading.Thread to be precise ) outside of the main run() method. That way, the entire deal with aforementioned exceptions can be ignore as I can just kill the thread, then disconnect the socket.

Cheers,



More information about the Tutor mailing list