Как организовать процесс обмена файлами (до 1-2мб) в основном .csv между клиентом и сервером?

Доброго дня, IT специалисты!

Прошу помощи с выбором технологии для решения следующей задачи:

Необходимо организовать процесс обмена файлами (до 1-2мб) в основном .csv между клиентом и сервером:
Клиент - кроссплатформенное консольное приложение под unix и win.
Сервер - php скрипт, именно php и ничто другое в виду определенных ограничений.

Принцип работы: Клиент подключается к серверу, авторизуется (простые логин пароль), запрашивает файлы на получение, если такие имеются получает и складывает в папку. Отправляет команду на передачу файлов, передает из другой папки. Разрывает соединение.

На данный момент сомневаюсь между SOAP || socket, но возможно есть и более рациональные решения.

Не очень хочется связываться с soap в виду его сложной настройки и неоднозначности применения к данной задаче, но подкупает отсутствие постоянно запущенного процесса.

Sockets идеально подходят, но это постоянно работающий процесс.

Натолкните на праведный путь.
1. Какую технологию выбрать?
2. Как лучше организовать процесс передачи файла? Разбивать и передать в бинарном виде?
3. На чем лучше(легче, быстрее, удобнее) написать клиент?

Спасибо.
  • Вопрос задан
  • 3107 просмотров
Решения вопроса 2
@howeal
Зачем изобретать велосипед? Поставьте любой маленький web-сервер, который и будет принимать соединения клиентов по протоколу HTTP, передавать файлы и параметры php скрипту.
Клиент можно написать на Си с библиотекой curl и не нужно ломать голову с передачей файлов. Всё будет работать прозрачно по протоколу HTTP. Для винды скомпилировать через cygwin.
Ответ написан
ScorpLeX
@ScorpLeX
Если на сервере можно использовать только php и нет больше не чего, придется помучатся с написанием своего сервера, если будете делать в первый раз или взять готовый пхп веб сервер, например.
Прежде чем передавать, лучше сначала упаковать, если у вас csv по 2мб.
Клиент можно на том же php написать или python, perl, nodejs, etc.

Вообще если на сервере есть хотя бы ftp, а он есть, я бы сделал через него.
На сервер ставим просто скрипт который будет управлять логинами\папками фтп, клиент же просто конектится и скачивает\грузит файлы на фтп.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
VasiliyIsaichkin
@VasiliyIsaichkin
Web front/back-end (JS-full stack) app developer
Если не знаете других языков кроме PHP, используйте и на клиенте консольный PHP - есть и для windows и для linux и для macos. В этом случае для передачи файлов проще всего использовать банальный HTTP. Вся задача со всеми шутками и прибаутками - на вечер.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы