As widely discussed in c.l.t, there seems to be two bugs in tcludp
1) closing an port on sender sends an empty udp packet
2) closing port on receiver can end in an dead-lock situation due to this empty package
The whole discussion is on
http://groups.google.com/group/comp.lang.tcl/browse_thread/thread/7f357671e472f468/7ece3a1787457be2?lnk=raot#7ece3a1787457be2
More precisely for (2): the reception of a zero-sized UDP, when it races with a local [close], deadlocks one of TclUDP's internal threads. Unfortunately reverse-engineering that makes me shy; I'd prefer the author (or maintainer) to take over the analysis (or at least confirm it and give directions to look at the relevant parts).