По договоренности
Загрузка файла происходит параллельно по количеству TCP-сокетов, указанному пользователем.
Копирование происходит только с сервера на клиент
При запуске сервера определяется какой файл будет предоставлен для копирования достаточно через константу
Эту загрузку можно прервать, отключив сервер (имитируя потерю соединения) или клиент (имитируя, что пользователь должен неожиданно выключить/перезагрузить компьютер). После восстановления связи между сервером и клиентом клиент имеет возможность продолжить копирование с момента прерывания (уже загруженные части файла повторно не перетаскиваются) снова параллельно через такое же количество сокетов TCP. Недостаточно продолжения копирования, которое работает только в том случае, если и клиент, и сервер продолжают работать после прерывания.
При прерывании работы клиента все TCP-соединения должны быть корректно закрыты, а файлы должны быть закрыты без сообщений об ошибках в консолях.
Программа должна иметь возможность копировать файл размером 1 ГБ менее чем за 1 минуту без проблем в локальной сети или на локальном хосте.