Если вы хотите мультиплексировать передачу разных данных в одно соединение, то вам нужно будет разработать свой протокол на базе TCP, формировать свои пакеты помечая что это, данные или куски файла, какие это данные, какие это файлы ну и т.д. Причем не важно, пишите вы из одного потока или из разных. Суть остается той же, вы на клиенте должны иметь возможность разделять данные, которые вам приходят.
Если у вас нету каких-то особых требований, то проще сделать по соединению на каждое действие (прием/загрузка файла, передача данных и тд.).
p.s. Не пугайтесь фраз типа "разработать протокол". Это не так уж и сложно по сути. Вам нужно только определить формат заголовка, то есть обычную структурку, в которой должны быть для простоты указаны длина пакета (без учета заголовка), и тип оного (что содержит). Это минимум.