basic client/server socket implementation