Я так понял вы предлагаете мне сделать
Один qtcpsocket::write. В котором я сразу пошлю порядка 20000 байт?
Нет, я не это имел ввиду). Как вам отправлять данные вы сами решите, по одному имени или все сразу.
Вы хотите организовать клиент серверное взаимодействие, которое реализуется посредством какого-то прикладного протокола.
Протокол обмена подразумевает, что данные передаются пакетами, а не непрерывно.
Пакет данных имеет какой-то формат - как минимум количество байт и внутреннее содержимое.
Из сокета вычитываются пакеты данных, а уже потом интерпретируется их содержимое.
На стороне отправителя:
* сериализуем сообщение/команду в пакет (например, QByteArray).
* пакет отправляется в сокет - в виде {размер, содержимое}
На стороне получателя:
* ожидаем, когда в сокете будет достаточно байт для чтения размера пакета
* вычитываем размер пакета
* ожидаем, когда в сокете будет достаточно байт для чтения содержимого пакета
* вычитываем содержимое пакета
* десериализуем сообщение/команду из пакета
* обрабатываем сообщение/команду.