Los datos de comunicación de Socket recibidos están incompletos, lo que provoca que falle el análisis de json.
Para especificar tanto el remitente como el receptor del flujo de bytes o la cadena de flujo de bytes como utf8, no debe haber límite en la longitud. Puede leer sin especificar la longitud y generar los resultados uno por uno.
Si eso no funciona, puede descomprimirlo usted mismo, dividir varias cadenas en un paquete, configurar el terminador y luego fusionarlas. Es mejor definir las pruebas.