add shutdown when close client
add serializer:Size<T>::value struct to have the portable size of a primitive type