begin process at 2012 02 17 10:50:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Réseaux & Internet

 > 

Winsock

 > 

Problème transfert FTP via Winsock


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème transfert FTP via Winsock

vendredi 6 octobre 2006 à 17:07:25 | Problème transfert FTP via Winsock

Akita95

Bonjour à tous et à toutes,

Je me permets de vous écrire car je rencontre un problème suite à l'utilisation de Winsock et je suis compplétement bloqué après avoir passé la journée à travailler dessus.
Je souhaite transferer un fichier vers mon serveur FTP local (IIS). Pour cela j'utilise 3 controle winsock comme j'ai pu le voir dans divers tutos et sources de vbfrance.
La connexion au serveur FTP et OK mais je n'arrive pas à effectuer le transfert.

Voila mon code complet

<---- Début du code ---->

Dim Port As Long 'Stocke le port renvoyé par le mode passif
Dim StrBuffer As Variant 'reception du fichier telecharger
Dim Tabstr() As String 'Stocke la reponse de la commande LIST
Dim coderecu As String


Private Sub Form_Load()

'On se connecte au serveur FTP local
SckFtp.Connect "localhost", "21"

End Sub

Private Sub SckFtp_Connect()
    ' On précise les identifiants de connexion
    MsgBox "Envoi du user"
    SckFtp.SendData "USER " & "usr_ftp" & vbCrLf
End Sub



Public Sub SckFtp_DataArrival(ByVal bytesTotal As Long)
    'Reception des codes (Msg) renvoyé par le serveur
    txtrecu = vbNullString
    SckFtp.GetData txtrecu, vbString

    'Decoupage du txt recu par ligne dans le tableau temp
    Dim Temp() As String
    Temp = Split(txtrecu, Chr(10))
    txtrecu = Temp(UBound(Temp) - 1)

    'Affichage des msg serveurs
    For i = 0 To UBound(Temp) - 1
   
            ' Si le 4éme caractére n'est pas - alors c un code
            If Mid(Temp(i), 4, 1) <> "-" Then
                coderecu = Left(Temp(i), 3)
                MsgBox coderecu
                Select Case coderecu
                        Case "220"  ' On précise le mot de passe
                            MsgBox "Service pret pour un nouvel utilisateur"
                       
                        Case "331"
                            MsgBox "L'utilisateur est correct, préciser le mot de passe"
                            SckFtp.SendData "PASS " & "usr_ftp" & vbCrLf
                                                       
                        Case "230"
                            MsgBox "L'utilisateur est bien authentifié, connexion OK"
                            ' Demande de connexion en mode Passif
                            SckFtp.SendData "PASV" & vbCrLf
                       
                        Case "227" 'Passive mode accepté
                            MsgBox "Passive mode accepté"
                        
                            ' On va récupèrer le port auquel on va connecter le socket de données
                            Temp = Split(txtrecu, ")")
                            Temp = Split(Temp(0), "(")
                            Temp = Split(Temp(1), ",")
                            Port = CLng(Temp(4)) * 256 + CLng(Temp(5))
                           
                           
                            Open "c:\test.txt " For Binary Access Read Lock Read Write As #1
                            StrBuffer = Input(LOF(1), #1)
                            Close #1
                           
                            SckUp.Connect "localhost", Port
                            SckFtp.SendData "STOR Test.txt"
                      
                            'SckUp.Connect "localhost", Port
                           
                            'SckFtp.SendData "STOR " & "\test.txt" & vbCrLf
                           
                         Case "150" 'le serveur accepte la connection
                                SckFtp.SendData StrBuffer & vbCrLf
                                'Voila, le serveur recoit le fichier


                        Case "221" 'Déconnection
                            SckFtp.Close
                           
                        Case "226" 'transfert terminé pour le sckdata ou scup (reception du LIST)
                                SckData.Close
                                SckData.Connect "localhost", Port
                                SckFtp.SendData "LIST" & vbCrLf
                                Etat = "LIST"
                               
                        Case Else
                            MsgBox "Autre code :" & coderecu
                           
                End Select
            End If
        Next i
End Sub
Public Sub Sckup_Connect()
MsgBox "Sckup_Connect"
SckUp.SendData StrBuffer & vbCrLf
MsgBox StrBuffer
End
End Sub

<---- Fin du code ---->


Merci à tous ceux qui pourront m'indiquer des anomalies!!

A+++

Akita
vendredi 6 octobre 2006 à 18:39:13 | Re : Problème transfert FTP via Winsock

jack

Administrateur CodeS-SourceS
Salut
Je n'ai pas de serveur ftp sous la main, mais il faudrait nous dire jusqu'où cela fonctionne.
- Identification par user et password : Ok ?
- Demande de mode passive : Ok ?
  Quelle réponse renvoit-il ?
  Le n° de port est-il cohérent ?
- Ensuite, tu envoies le fichier sur le 1er socket : A quoi te sert SckUp ?
  Vérifie s'il ne foudrait pas plutôt l'envoyer grace à SckUp ...
- Qu'est ce que c'est que SckData ?
  D'où sort-il ? comment est-il initialisé / utilisé ?
- Dans le "Open" du fichier, "Lock Read Write" ne sert à rien (pas gènant)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accroit quand on
mardi 10 octobre 2006 à 13:16:09 | Re : Problème transfert FTP via Winsock

Akita95

Salut et désolé pour la réponse tardive.

Le code est ok jusqu'à l'acceptation du passive mode, après être passé en passive mode les commandes utilisées pour envoyer le fichier ne fonctionnent pas... :-(

Pour tout ce processus j'ai suivi différent codes trouvés sur vbfrance à savoir :
- http://www.vbfrance.com/codes/WINSOCK-FTP-TUTORIEL_30803.aspx
- http://www.vbfrance.com/codes/CONNEXION-FTP-CONTROL-WINSOCK_2374.aspx

J'utilise un "mix" des deux codes, cela devrait fonctionner mais je ne comprends pas pourquoi!

Merci d'avance si vous pouvez m'aider ;)

A++

Akita


Cette discussion est classée dans : senddata, case, temp, msgbox, sckftp


Répondre à ce message

Sujets en rapport avec ce message

Cas selon [ par tranquiloubilou ] ThomThomsalut salut ami(e)s développeur(euse)sj'utilise une instruction Case et je souhaiterais qu'une de mes conditions soit supérieure à une certain Personne ne sais ?? [ par Death Angel ] Comme je vois que l'on me demande tjs de mieux expliquer, je vais réessayer cette fois-ci Voilà une autre explication: Tjs dans un 1er temps je crée m MsgBox -> Module [ par Fredy35 ] Voila j'ai un souci j'ai mis tout mes msgbox dans un module :' Module de gestion des messages événementielStatic Function Message(Mess As String) As S Select Case [ par alonsyl ] bonjour,j'ai une variable (mavar) qui peut prendre des valeurs entieres entre 1 et 100.je voudrais faire 1 "Select Case" dessus sachant qu'il existe 3 Pb reception de fichier [ par La biode ] Salut, j'ai modifier un peu la source de quelqu'un que j'ai trouver sur VBfrance qui servait a envoyer des photos qui utilisé le control winsock, mais Regroupement de msgBox [ par iobane ] Bonjour a tous, et bien voila mon petit problème. Mon client me demande un petit travail. En gros, son "programme'" est en excel. Il possède sur ca fe [VB6] aidez moi,qu'est ce qu'il cloche dans ce code [ par 111z ] j'ai eu beau d'essayer toute les combinaisons possible , mais a chaque fois que je change les valeurs le MsgBox affiche toujours "résultat valide" !!! Problème de Select case [ par Choucroute62 ] Bonjour à tousVoila j'essaie de faire un test de select case sur mon application mais ça ne marche pas, voici donc le code en questionPrivate Sub Btnv Communication RS232 suite à changement de PC [ par DenisRo ] Bonjour,Dans le cadre de la mise en place d'un système de mesure de cote sur des vis, une communication par port RS 232 avec récupération des données VbCancel et select case [ par Lolyshia ] Bonjour, j'essaye de programmer un bouton vbcancel pour que chaque fois que je click dessus il y a un message qui apparait qui dit bonne journee et qu


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,872 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales