Consider the case in which you want to send text back and forth between computers. (This could be a 1-to-1 conversation or a 1-to-many conversation. Computers could also include smartphones.)
How may one create this in general? For instance, do you push messages by making all parties into lightweight servers that take requests? (I'm particularly confused about this pushing part.)
What specific software, protocols, and/or frameworks are used in practice.
It is common to employ comet (see http://en.wikipedia.org/wiki/Comet_(programming)) via a server such as Twisted. See Choosing and deploying a comet server for a more indepth discussion.
Other options include using RTFMP using a server such as Red5