Transmission de fichiers via internet

Discutez d'informatique ici !
Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 13:39

Transmission de fichiers via internet

par Dlzlogic » 08 Fév 2013, 20:05

Bonjour,
Je voudrais écrire un module de transmission de fichier.
Rien ne m'interdit de faire un module d'écriture et un module de lecture.
Mon environnement est C/C++, sous windows, mais je comprendrai très bien un truc tournant sous Linux.
Je crois que j'ai lu à peu près tout ce que j'avais à ma disposition, et comme ce genre de programme est assez sensible et que les contrôles sont assez difficiles à faire, j'ai besoin d'un coup de main.
Ce seront des outils automatiques lancés suivant certaines condition, donc, même pas en ligne de commande.
Merci d'avance.



Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 13:00

par fatal_error » 08 Fév 2013, 23:45

ce genre de programme est assez sensible

t'as qu'à ecrire un ssh en ++ (ou en recup un deja fait)

les contrôles sont assez difficiles à faire

t'as qu' calculer un checksum pour verifier que tout correct
la vie est une fête :)

Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 13:39

par Dlzlogic » 08 Fév 2013, 23:49

Merci de ta réponse, mais là tu me parles hébreux.
En gros, j'ai tout ce qu'il faut, mais je ne suis pas assez sûr de moi.
[edit]
J'ai l'impression que j'ai du mal à expliquer mon problème.
1-j'ai un fichier texte sur ma machine
2- je veux le transférer sur une machine, on m'a donné une adresse de la forme X@y et un mot de passe pour mes essais. La phase exploitation viendra ensuite.
3- je dois ouvrir une connexion
4- transférer le fichier (et aussi en recevoir un)
5- fermer la connexion.

Tout ceci doit se faire de façon automatique, c'est à dire sans l'utilisation d'un logiciel où l'opérateur doit intervenir.
J'ai donc on petit programme à écrire qui comportera les phases 3, 4 et 5. Ceci dans un environnement Windows. C'est là que j'ai besoin d'aide.
Merci d'avance.

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 13:00

par fatal_error » 09 Fév 2013, 08:41

La première question (et la plus importante) c'est :

comment se connecter à la machine. Parce que x@y+mdp on en fait rien si on connait pas le protocole d'identification.
S'agit-il d'une identification ssh?
Un remote connection à la windaube?
etc...

Transférer un fichier, c'est généralement trivial
la vie est une fête :)

Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 13:39

par Dlzlogic » 09 Fév 2013, 13:42

Oui, c'est effectivement ça la question.
Ca pourrait être soit HTTP, soit FTP, en tous cas, il faut créer un socket (d'après mes bouquins).
Naturellement la connexion ne doit durer que le temps du transfert.
Voila l'information qu'on m'a donnée :
En gros, si vous pensez pouvoir intégrer la connexion sur le site
distant en HTTP et HTTPS pour émettre un POST, on pourra définir plus
précisément les protocoles. Regardez la "libcurl" pour faire cela, je
pense que cela traitera une partie du problème.

J'ai fait des recherches pour libcurl, rien trouvé.
En fait, je suis presque sûr d'avoir déjà ce qu'il me faut avec Borland, mais ils sont un peu radins en exemples et la doc me parait un peu simplifiée.

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 13:00

par fatal_error » 09 Fév 2013, 17:17

je sais pas qui a écrit ca, mais il y connait rien.

Parce que http et https sont des protocoles.

Maintenant tu n'as toujours pas dit si tu devais te connecter sur la machine distante ou si tu devais permettre à la machine distante de recevoir également ta connexion.

Enfin, C++ c'est ptet pas le meilleur choix pour transférer un fichier par http...
par exemple un ptit wget en post, et c'est réglé.
la vie est une fête :)

Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 13:39

par Dlzlogic » 09 Fév 2013, 17:52

Oui, c'est vrai c'est pas sa spécialité non plus, c'est pour ça qu'il me demande.

Pour le sens client->serveur, l'émission est automatique, sans aucune intervention humaine, pour le sens serveur -> client, là l'opération se fera par une ligne de commande. Etant donné que le serveur travaille sous linux, j'écrirai un petit programme de saisie en C pur et dur, et ce sera compilé par lui, sous Linux.
En fait c'est pas tellement le retour qui m'inquiète, c'est l'aller, d'autant qu'il y des infos confidentielles et ce serait embêtant qu'elles soient lues au passage.

Pour le langage utilisé, ça m'est égal, puisque le passage par un fichier local (10Ko) est la solution la plus facile. La seule contrainte est qu'il ne doit pas y avoir d'intervention humaine.

Maintenant tu n'as toujours pas dit si tu devais te connecter sur la machine distante ou si tu devais permettre à la machine distante de recevoir également ta connexion.
Je dois me connecter à la machine distante, celle-ci étant parfaitement au courant des machines qui utilisent cette procédure.

J'ai relu différentes choses, le C/C++ semble bien adapté à ce genre de manipe. Mais je suis preneur pour tout autre-chose.

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 13:00

par fatal_error » 09 Fév 2013, 18:21

mais si le serveur tourne sur linux, tu peux pas faire un simple ssh?
la vie est une fête :)

Avatar de l’utilisateur
ampholyte
Membre Transcendant
Messages: 3940
Enregistré le: 21 Juil 2012, 08:03

par ampholyte » 10 Fév 2013, 23:08

Bonjour,

Je me permets de poser quelques questions. Est-ce obligatoire de passer en C/C++ ? Est-ce qu'il est possible d'installer un serveur apache sur le PC (wamp/ xampp) ? Si oui, il serait très simple d'échanger des fichiers en PHP par ftp (pas de grosse difficulté de ce côté là)

Code: Tout sélectionner




Il suffira de créer un cron (task pour Windows) s’exécutant régulièrement pour uploader les fichiers.

Cette solution pourrait-elle convenir ?

Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 13:39

par Dlzlogic » 10 Fév 2013, 23:32

Merci pour votre idée, mais à part pouvoir utiliser la fonction PHP directement en C/C++, ce que j'ai regardé, ce n'est pas possible.
Il existait une autre solution, envoyer un mail automatique avec PJ, exclu aussi (pour d'autres raisons).
En fait, je suis pratiquement sûr que j'ai tous les outils nécessaires, mais pour l'instant, je cherche encore. Comme je suis prudent, je ne ferai des essais que quand j'aurai intellectuellement tout compris, vu que c'est pas ma spécialité, c'est un peu long.
En d'autres l'utilisation du service HTTP est une hypothèse de base.

Avatar de l’utilisateur
ampholyte
Membre Transcendant
Messages: 3940
Enregistré le: 21 Juil 2012, 08:03

par ampholyte » 11 Fév 2013, 08:48

Bonjour,

Il est possible d'utiliser la fonction php en C/C++, il suffit de créer un batch (.bat) executant de le php (grâce à apache) et de faire un exec("monbatch.bat") (ou system("monbatch.bat").

Avatar de l’utilisateur
fatal_error
Modérateur
Messages: 6610
Enregistré le: 22 Nov 2007, 13:00

par fatal_error » 11 Fév 2013, 09:33

Il est possible d'utiliser la fonction php en C/C++, il suffit de créer un batch (.bat) executant de le php (grâce à apache) et de faire un exec("monbatch.bat") (ou system("monbatch.bat").

1:le cron se réveille :
reveil->call .bat -> call C++ -> call .bat -> call php -> send
autant avoir
reveil->call.bat ->call php ->send

l'utilisation du service HTTP est une hypothèse de base.

ca veut rien dire hypothèse.
utiliser http c'est mandatoire ou c'est une possibilité parmi d'autres?

2:Enfin utiliser php ou C++ simplement pour envoyer un fichier, ca sert à rien.
la vie est une fête :)

Avatar de l’utilisateur
ampholyte
Membre Transcendant
Messages: 3940
Enregistré le: 21 Juil 2012, 08:03

par ampholyte » 11 Fév 2013, 10:52

fatal_error a écrit:1:le cron se réveille :
reveil->call .bat -> call C++ -> call .bat -> call php -> send
autant avoir
reveil->call.bat ->call php ->send



Oui tout à fait, ce que je voulais dire c'est qu'il était tout de même possible d'executer du php à partir du C++. Même si dans ce cas un fichier php suffirait avec un cron en .bat ou .vbs



2:Enfin utiliser php ou C++ simplement pour envoyer un fichier, ca sert à rien.


C'est également vrai, pourquoi ne le fais-tu pas directement en batch que tu executeras dans une task sous Windaube ? (Petit lien pour l'envoi vers FTP : http://tonioc.free.fr/Trucs/pagestrucs/art90.html)

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 4 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite