Я бы не использовал временный временный файл на клиенте, поскольку доступ к нему по сети не будет быстрее, чем запись его содержимого непосредственно через сокет на сервер. Однако вы можете захотеть разработать свой протокол для отправки данных небольшими порциями, на которые вы получаете ответы от сервера, чтобы вам не нужно было повторно отправлять все данные, если ваше соединение разрывается во время отправки. Еще одним преимуществом этого является то, что вы позволяете серверу отменить передачу по ответу, выполнив ответ, закрыв соединение, если оно по какой-то причине больше не хочет.