Как сделать или как работает listen localhost?
я думаю что наверное надо делать bind на 127.0.0.1, но так ли это? 
Да. INADDR_LOOPBACK -- специально макрос для этого адреса есть.
Локальный интерфейс, он-же localhost имеет адрес 127.0.0.1