Вопросов тьма, от ответов на них зависит и результат
Например - сервер доступен ли по какому то протоколу?
во всех операционных системах можно настроить какой-нибудь протокол smb/nfs/ftp/http/ssh/... все они позволяют получить доступ к файлу так или иначе.
Это вопрос не программирования а devops, настроить соответствующее приложение-сервер, на стороне клиента есть очень универсальная библиотека -
libcurl (и одноименная утилита) умеет наверное все популярные и не очень протоколы.
Само собой можно написать свой сервер по своим правилам (гуглить socket server c++) но стоит ли?
p.s. netcat, консольная утилита, позволяет отправить через пайпы содержимое файла в сетевой сокет а на другой стороне соответственно наоборот принять, способ тупой, простой, на основе его и баш можно сделать однострочник сервер для отправки файла любому подключившемуся.