dcc confuses me too.
trying to read the only documentation for irc dcc that i can find it seems to suggest the irc client listens on port 0 (which is apparently actually port 59 for mirc) and then the receiver connects to the port and the sender starts sending the file data (in the case of file transfer). what i don't get is... say you offer 5 files to 2 different people before one of the files is accepted. the receiver connects to the listening port -- how does mIRC verify who's connecting or know which file to send?