Fix issue with socket closing.

Problem was that the sink was being detached once the initial source
(i.e. the first client to connect to the socket) hung up. Fixed
by writing my own `sourceSocket` which keeps listening for new
connections.