Я пишу демон C, который мое веб-приложение будет использовать в качестве прокси для связи с FTP-серверами. Мое веб-приложение позволяет пользователям подключаться и взаимодействовать с FTP-сайтами через AJAX. Причина, по которой мне нужен демон C, заключается в том, что я не могу поддерживать FTP-соединения живыми через вызовы AJAX.
Мое веб-приложение должно быть в состоянии указать моему демону делать список, получать, помещать, удалять, перемещать и переименовывать файлы на указанный FTP-сервер для данной учетной записи пользователя. Поэтому, когда мое приложение обращается к демону, оно должно передать следующее через некоторый протокол, который я определил: 1) действие, 2) идентификатор соединения, 3) идентификатор пользователя, 4) любые дополнительные параметры для действия (примечание: информация о соединении хранится в база данных, так что демон тоже с этим поговорит).
Так вот, что мне нужно, чтобы мой демон сделал. Я думаю, что связь между моим веб-приложением и демоном будет происходить через сокет TCP, но я точно не знаю, какие данные я отправлю. Мне нужен пример. Например, я должен просто отправить что-то подобное через сокет демону?
action=list&connection_id=345&user_id=12345&path=/some/path
или я должен сделать что-то хардкорное на уровне байтов, как это?
+-----------------+-------------------------+-------------------+-----------------------------------+
| 1 byte (action) | 4 bytes (connection id) | 4 bytes (user id) | 255 bytes (additional parameters) |
+-----------------+-------------------------+-------------------+-----------------------------------+
| 0x000001 | 345 | 12345 | /some/path |
+-----------------+-------------------------+-------------------+-----------------------------------+
Как обычно выглядит такая связь через сокет?