make socket use String instead of std::string