Ich schreibe einen C-Daemon, den meine Webanwendung als Proxy für die Kommunikation mit FTP-Servern verwendet. Mit meiner Webanwendung können Benutzer über AJAX mit FTP-Sites eine Verbindung herstellen und interagieren. Der Grund, warum ich einen C-Daemon brauche, ist, dass ich keine Möglichkeit habe, FTP-Verbindungen über AJAX-Aufrufe hinweg aufrechtzuerhalten.Wie sollte ein Socket-basiertes Protokoll für einen C-Daemon aussehen?
Meine Web-Anwendung muss in der Lage sein, meinem Daemon zu sagen, Dateien für einen bestimmten Benutzer-Account aufzulisten, zu setzen, zu löschen, zu verschieben und umzubenennen. Wenn meine Anwendung also mit dem Daemon kommuniziert, muss sie folgendes über ein Protokoll definieren: 1) Aktion, 2) Verbindungs-ID, 3) Benutzer-ID, 4) alle zusätzlichen Parameter für die Aktion (Hinweis: Verbindungsinformationen werden in gespeichert eine Datenbank, also wird der Daemon auch damit sprechen).
Also das ist, was ich brauche meinen Daemon zu tun. Ich denke, die Kommunikation zwischen meiner Web-App und dem Daemon wird über einen TCP-Socket stattfinden, aber ich weiß nicht genau, welche Daten ich senden würde. Ich brauche ein Beispiel. Zum Beispiel, sollte ich etwas über den Socket an den Daemon schicken?
action=list&connection_id=345&user_id=12345&path=/some/path
oder sollte ich etwas Hardcore auf der Byte-Ebene tun, so?
+-----------------+-------------------------+-------------------+-----------------------------------+
| 1 byte (action) | 4 bytes (connection id) | 4 bytes (user id) | 255 bytes (additional parameters) |
+-----------------+-------------------------+-------------------+-----------------------------------+
| 0x000001 | 345 | 12345 | /some/path |
+-----------------+-------------------------+-------------------+-----------------------------------+
Wie sieht eine solche Kommunikation normalerweise aus?
Ich habe nicht darüber nachgedacht, aber jetzt habe ich etwas anderes zu untersuchen. Danke für das Erwähnen! –