Précédent   Forum du club des développeurs et IT Pro > Java > Serveurs, conteneurs, et Java EE > Autres
Autres Vos questions sur les autres serveurs d'application Java.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 13/10/2011, 20h07   #1
TheLion
Invité de passage
 
Homme
Développeur Java
Inscription : août 2011
Messages : 6
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Maroc

Informations professionnelles :
Activité : Développeur Java
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : août 2011
Messages : 6
Points : 0
Points : 0
Par défaut Client SFTP en Java avec les Sockets

Bonjour,

Je souhaiterais mettre en place un client SFTP en java, sans passer par aucune libraire, seulement en utilisant les sockets. en FTP ça marche sans aucun souci, sauf qu'en SFTP c'est pas le cas.

code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
Socket controlSock = new Socket(host, port);				
				// SshClient 
				controlSock.setSoTimeout(30000); // timeout if nothing after X s during a read
				controlSock.setSoLinger(true, 1); // wait 1s on close
				System.out.println("controlSock : "+controlSock.toString());
 
				controlReader = new BufferedReader(new InputStreamReader(controlSock.getInputStream()));
				controlWriter = new BufferedWriter(new OutputStreamWriter(controlSock.getOutputStream()));
 
				String buf = controlReader.readLine();				
				System.out.println("readReply : buf : "+ buf);
 
				String command = "open \"user@host\"";
				//command = "sftp -o";
				controlWriter.write(command);				
				controlWriter.write(EOL);
				controlWriter.flush();
				buf = controlReader.readLine();	
				System.out.println("USER : buf : "+ buf);
en retour je reçois l'erreur suivante : PROTOCL MISMATCH

Merci d'avance
TheLion est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 11h24   #2
dinobogan
Modérateur
 
Avatar de dinobogan
 
Homme Dinobogan Shelashyn
ingénieur
Inscription : juin 2007
Messages : 3 426
Détails du profil
Informations personnelles :
Nom : Homme Dinobogan Shelashyn
Âge : 32
Localisation : France

Informations professionnelles :
Activité : ingénieur
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2007
Messages : 3 426
Points : 5 553
Points : 5 553
Qu'appelles-tu SFTP ? Simple File Transfer Protocol ? Transfert sur SSH ?
__________________
Que la force de la puissance soit avec le courage de ta sagesse.
dinobogan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 12h26   #3
TheLion
Invité de passage
 
Homme
Développeur Java
Inscription : août 2011
Messages : 6
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Maroc

Informations professionnelles :
Activité : Développeur Java
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : août 2011
Messages : 6
Points : 0
Points : 0
Merci de ta réponse.
oui en effet c'est un trensfert sur SSH :

Code :
1
2
3
 
controlSock : Socket[addr=/host,port=22,localport=50757]
readReply : buf : SSH-2.0-OpenSSH_4.3
TheLion est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 15h05   #4
dinobogan
Modérateur
 
Avatar de dinobogan
 
Homme Dinobogan Shelashyn
ingénieur
Inscription : juin 2007
Messages : 3 426
Détails du profil
Informations personnelles :
Nom : Homme Dinobogan Shelashyn
Âge : 32
Localisation : France

Informations professionnelles :
Activité : ingénieur
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2007
Messages : 3 426
Points : 5 553
Points : 5 553
As-tu commencé par lire ce document ou quelque chose de similaire ?
Car sans connaitre exactement le protocole, tu n'auras jamais un client fonctionnel.
__________________
Que la force de la puissance soit avec le courage de ta sagesse.
dinobogan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 16h14   #5
TheLion
Invité de passage
 
Homme
Développeur Java
Inscription : août 2011
Messages : 6
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Maroc

Informations professionnelles :
Activité : Développeur Java
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : août 2011
Messages : 6
Points : 0
Points : 0
je sais que c'est un protocole SSH.

je vais essayer de lire le document que tu m'as indiqué. meme si je pense pas avoir le temps necessaire pour le lire avant la date de livraison de mon module :s

Merci
TheLion est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 17h05   #6
dinobogan
Modérateur
 
Avatar de dinobogan
 
Homme Dinobogan Shelashyn
ingénieur
Inscription : juin 2007
Messages : 3 426
Détails du profil
Informations personnelles :
Nom : Homme Dinobogan Shelashyn
Âge : 32
Localisation : France

Informations professionnelles :
Activité : ingénieur
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2007
Messages : 3 426
Points : 5 553
Points : 5 553
Je pensais que tu voulais faire tout par toi même pour comprendre comment ça fonctionne.
Mais si tu dois livrer quelque chose rapidement, pourquoi réinventer la roue ?
__________________
Que la force de la puissance soit avec le courage de ta sagesse.
dinobogan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 17h21   #7
TheLion
Invité de passage
 
Homme
Développeur Java
Inscription : août 2011
Messages : 6
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Maroc

Informations professionnelles :
Activité : Développeur Java
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : août 2011
Messages : 6
Points : 0
Points : 0
Justement mais on va dire que c'est la politique de la boite si on peut appeler ça comme ça.

bon apres avoir lu un peu le document, j'ai su que le PROTOCOL MISMATCH etait du à un mauvais retour à la ligne (\r au lieu de \n).

par contre là je n'ai plus la meme erreur sauf que je ne reçois plus de réponse de la part serveur ça me fait ça :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
Exception in thread "main" java.net.SocketTimeoutException: Read timed out
	at java.net.SocketInputStream.socketRead0(Native Method)
	at java.net.SocketInputStream.read(Unknown Source)
	at java.net.SocketInputStream.read(Unknown Source)
	at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
	at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
	at sun.nio.cs.StreamDecoder.read(Unknown Source)
	at java.io.InputStreamReader.read(Unknown Source)
	at java.io.BufferedReader.fill(Unknown Source)
	at java.io.BufferedReader.readLine(Unknown Source)
	at java.io.BufferedReader.readLine(Unknown Source)
	at Main.main(Main.java:65)
Si tu as une idée ...

Merci bcp
TheLion est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 18h00   #8
dinobogan
Modérateur
 
Avatar de dinobogan
 
Homme Dinobogan Shelashyn
ingénieur
Inscription : juin 2007
Messages : 3 426
Détails du profil
Informations personnelles :
Nom : Homme Dinobogan Shelashyn
Âge : 32
Localisation : France

Informations professionnelles :
Activité : ingénieur
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2007
Messages : 3 426
Points : 5 553
Points : 5 553
C'est probablement que le serveur attend la suite de la commande mais que tu es déjà passer en attente de réponse du serveur.
Je ne voudrais pas avoir l'air d'insister, mais Apache propose une API, avec toutes les sources, pour gérer proprement du SFTP. Tu gagnerais un temps incroyable et tu limiterais beaucoup les bugs que tu auras nécessairement dans l'implémentation du protocole.
__________________
Que la force de la puissance soit avec le courage de ta sagesse.
dinobogan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/10/2011, 18h08   #9
TheLion
Invité de passage
 
Homme
Développeur Java
Inscription : août 2011
Messages : 6
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Maroc

Informations professionnelles :
Activité : Développeur Java
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : août 2011
Messages : 6
Points : 0
Points : 0
d'accord. je vais essayer encore et pis si j'y arrive pas tant pis je passerai par une lib.

sinon une dernière demande, pourrait m'en recommandé une stp parce qu'il y en plusieurs.

Merci infiniment
TheLion est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/10/2011, 08h47   #10
tchize_
Expert Confirmé Sénior
 
Avatar de tchize_
 
Homme
Responsable de service informatique
Inscription : avril 2007
Messages : 18 278
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : Belgique

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Service public

Informations forums :
Inscription : avril 2007
Messages : 18 278
Points : 32 754
Points : 32 754
Envoyer un message via MSN à tchize_ Envoyer un message via Skype™ à tchize_
Il y a plusieurs librairies. Tout dépend de tes besois, du niveau de controle que tu as et de tes contraintes de license.

Contraire à la poliique de la boite? Je pense pas que la boite aie comme politique de gaspiller du temps de programmeur au prix où ça coûte (ou alors elle va vite faire faillite). Je peux comprendre qu'on ramène pas une grosse librairie pour éviter de coder deux classes, mais coder un client ssh correct, ca nécessite beaucoup de travail (gestion des clés, des modes d'authentification, validation des clés publiques, identification des attaque man in the middle, etc).
__________________
⥀⥁ Чиз faq java, cours java, javadoc. Pensez à et
Laisse entrer le jour après une nuit sombre. Si tu es toujours là, tu n'es pas faite pour mourir.
tchize_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2011, 12h14   #11
TheLion
Invité de passage
 
Homme
Développeur Java
Inscription : août 2011
Messages : 6
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Maroc

Informations professionnelles :
Activité : Développeur Java
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : août 2011
Messages : 6
Points : 0
Points : 0
C'est noté.

Merci Bcp
TheLion est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 08h59.


 
 
 
 
Partenaires

Hébergement Web