A general tcp server for erlang