make port optional
Merge branch 'socket-listener' into rabe