What would be a good analogy for IP addresses and ports? What would be a good way to describe ports?  I learned about it using this analogy, but it seems pretty inadequate to me:

IP addresses are like street addresses of apartment buildings, and ports are like the apartments therein.

IP addresses are not segmented as a street address is, and second, apartments don't seem at all analogous to ports in terms of behavior.
I used seats in the room. 

The classroom has an address. So, if someone wanted to come and talk to one of the students they would come down the hall and into my room. 

But, that only gets them to the room (server). They need to talk to a specific person, so they go to seat 17 so they can talk to Bob. 

So Bob's socket is room.123:17. 

I tried once to continue and the floor became cable runs, each hallway was a subnet, the corners were routers, and the school map was DNS. That pushed it a little too far :)

Did find though that most kids had at least a passing understanding of ports. Most of them had opened ports on their home routers to play games over the internet.