What I think of a port is: Whenever a message arrives to a machine, it is copied to a memory area which is mapped to the port specified and the concerned application or service is notified that a message has arrived for it. 

If this is true, then what happens if two messages arrive for two different services listening on the same port ? ( either http or tcp )

And why can not two named pipe addresses use the same named pipe ?