On Tuesday 21 June 2005 14:22, Zunbeltz Izaola wrote: > This comunication is done in a new thread not to frezee the GUI. > The problem is that when "Stop" is done (it kills the thread) some > confirmation sockets are mixed (are not receibed in the correct order > although i use tcp). I guess you are accessing the socket from both your GUI thread and communications thread. Dont do that. An action in the GUI thread should signal the communictions thread, then the communictions thread talks to the socket. > I have been told not to do comunication in a new thread; instead, I should > use asyncronus comunication. Using non-blocking sockets in the GUI thread may cause the opposite problem to the one that led you to use threads in the first place: a blocking operation in the GUI may freeze the communications. Maybe that isnt a problem for you. If it is, I suggest sticking to two threads. > What module should i use, asyncore, asynchat, twisted,(anohter) If you are talking to only one device, then using blocking sockets is a good approach. However Ive never written an application like this that didnt need to support a second (or third) machine sooner or later, and three communictions threads is starting to get ugly. A framework like Twisted will let you handle many machines in the one thread, but it still makes sense to keep a second one for the GUI. -- Toby Dickenson -- http://mail.python.org/mailman/listinfo/python-list