Actually, I'm not sure how good Python's support of threads or shared memory is.
(which if you are forking, and want to send data between connections, you need some way of sharing memory)
So what I would suggest is to use Python's select class, and you just sit there waiting on select, when something happens in the select, if it is your listening socket, you accept a new connection, add it to the list of sockets you are waiting on and go back into the loop. If you get something from one of the "clients" you loop through your connections (except the listening socket) and send the message out to each one.
I'm not too familar with Python, but I found this guide by searching on google, and it seems to be pretty good. And it even recommends using threads, so there's another way to do it:
http://www.amk.ca/python/howto/sockets/