erlang socket framework