lost end information when using EthernetClient.readString()

String c=client.readStringUntil('\0');

The sender is NEVER going to put a NULL on the serial port, if it is writing ASCII data (as your server obviously is).

If you have ANY control over the output, make it output some clearly recognizable end of packet marker that is not going to appear in the packet.

If you don't have any control, use a different approach where you DO have control.