http://programmers.stackexchange.com/questions/171734/difference-between-a-socket-and-a-port