cs_gagou9
Messages postés126Date d'inscriptionvendredi 19 septembre 2003StatutMembreDernière intervention20 novembre 2007
-
12 août 2006 à 00:46
cs_gagou9
Messages postés126Date d'inscriptionvendredi 19 septembre 2003StatutMembreDernière intervention20 novembre 2007
-
13 août 2006 à 21:25
Salut !!
ma question : j'ai une erreur 10049 avec winsock, que faire ?
bon, depuis quelques jours je suis dans la realisation d'un prog visant a permettre a mes amis lituaniens d'ajouter des photos sur mon site, via ftp.
raison de la creation d'un tel programme :
- je ne souhaite pas leur imposer d'apprendre l'utilisation d'un client ftp standart
- ils ne s'y connaissent pas tres bien en informatique
- par http ? je suis chez free... et c'est limité a 2mo... alors pour une video......
- surtout, je veux faire un prog simple, et sans fioritures !
- bien evidemment le but 1er est de recuperer ttes les photos que j'ai pas...
qu'ais je fais jusqu'a maintenant ?
- interface graphique (hmm environ 15minutes...)
- gestion du controle, avec un winsock, qui envoie les commandes, interprete les messages du serveur.
- gestion du transfert, avec un autre winsock, qui envoie les fichiers.
quand mon erreur arrive-t-elle ?
et bien c'est simple, sur un ordi, j'ai vb 6 anglais d'installé, quand je teste tout va bien, sauf une fois, mais je me rapelle plus quelle erreur c'etait.
et sur un autre ordi, MEME configuration materielle, TOUT PAREIL, meme windows, suelement, pas de vb d'installé.
et, dernier point, les deux machines sont derriere un routeur...
si vous connaissez la solution, merci!
Gagou9
PS : n'allez pas me dire que mon sujet est mal presenté hein !! loool
A voir également:
L'adresse demandée n'est pas valide dans son contexte
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 13 août 2006 à 17:53
Re
Mais le bug, il apparait sur quel socket (FTPControl ou FTPEchange) ?
Et sur quelle ligne ?
Si c'est sur FTPEchange, que vaut PortEnvoi ?
A mon avis, il vaut 0 puisque la variable perd sa valeur entre deux scrutations.
Remplace le
Dim PortEnvoi As Variant
par
Static PortEnvoi As Variant
Règles de programmation :
- Dimensionner ses variables en tête de procédure
- Eviter le type Variant qui nécessite plus de temps machine et masque certains problèmes
D'ailleurs pou PortEnvoi, tu prends le soin de lui attribuer une valeur avec une conversion CLng, alors pourquoi ne pas lui donner le type Long tout de suite ?
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'accro
cs_gagou9
Messages postés126Date d'inscriptionvendredi 19 septembre 2003StatutMembreDernière intervention20 novembre 2007 12 août 2006 à 01:08
Suis-je bete, sans le code source, vous etes mal !
voici la partie pour le winsock de gestion :
pb est une barre de progression
Private Sub FTPcontrol_DataArrival(ByVal bytesTotal As Long)
Dim txtRecu() As String
Dim Temp As String
Dim CodeRecu As Integer
Temp = vbNullString
FTPcontrol.GetData Temp, vbString
Temp = Left(Temp, Len(Temp) - 2)
'à ce moment txtRecu contient toute la ligne renvoyée par le serveur
txtRecu() = Split(Temp, vbCrLf)
CodeRecu = Left(txtRecu(0), 3)
'ici codeRecu stocke... bah le code recu par le serveur
If CodeRecu = 220 Then 'si on a reçu le code d'accueil
FTPcontrol.SendData "USER monUSER" & vbCrLf
End If
If CodeRecu = 331 Then 'demande de MDP
FTPcontrol.SendData "PASS monPASS" & vbCrLf
End If
If CodeRecu = 530 Then 'si on recoi le code Mot de passe invalide
FTPcontrol.Close
End If
If CodeRecu = 230 Then 'si on reçoi le code "logged in"
FTPcontrol.SendData "TYPE I" & vbCrLf
End If
If CodeRecu = 200 Then 'type I accepté (image)
FTPcontrol.SendData "PASV" & vbCrLf
End If
If CodeRecu = 227 Then 'si on est accepté dans le passive mode 'CALCUL DU PORT DISTANT POUR L'ENVOI'
Dim TempPort As Variant
Dim portEnvoi As Variant
TempPort = Split(txtRecu(0), ")")
TempPort = Split(TempPort(0), "(")
TempPort = Split(TempPort(1), ",")
portEnvoi = CLng(TempPort(4)) * 256 + CLng(TempPort(5)) 'FIN DU CALCUL'
'PARTIE UPLOAD'
Open "image" For Binary Access Read Lock ReadWrite As #1
Buffer = Input(LOF(1), #1)
Close #1
Dim nomFichier As String
nomFichier = Dial.FileTitle
FTPcontrol.SendData "STOR " & nomFichier & vbCrLf 'demande d'envoi
End If
If
CodeRecu = 150 Then 'requette d'envoi de fichier acceptée
FTPechange.Connect "ftpperso.free.fr", portEnvoi 'Connection avec le serveur d'envoi
pb.Max = Len(Buffer)
End If
End Sub
ici la partie pour le winsock qui gere le transfert :
Private Sub FTPechange_Connect()
FTPechange.SendData Buffer & vbCrLf
End Sub
Private Sub FTPechange_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As
String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 12 août 2006 à 17:24
Salut
Et le texte de l'erreur, s'il te plait
Car les codes d'erreur supérieurs à 255 n'appartiennent plus à VB mais aux composants.
Difficile donc de reproduire cette erreur sur le Winsock.
Apparamment, d'après les moteurs de recherches (que bien sûr tu as dû consulter), cette erreur peut survenir lorsque tu pointes un socket sur une adresse IP invalide (au sens technique).
Cette erreur peut apparaitre lorsque tu essayes d'imposer une adresse IP locale ou un port en utilisant le Bind.
Je pense qu'il s'agit donc d'une erreur de paramétrage, pas de code.
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'accro
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 12 août 2006 à 17:27
D'autre part, rappel : Tu ne peux pas implanter un EXE créé sous VB6 directement sur une machine vierge.
Il faut créer un empaquetage afin d'y installer les OCX et autres DLL.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_gagou9
Messages postés126Date d'inscriptionvendredi 19 septembre 2003StatutMembreDernière intervention20 novembre 2007 13 août 2006 à 13:10
Salut, et merci d'apporter votre aide !
hum, le texte de l'erreur, le voici :
"address is not avaible from the local machine"
voila,
j'ai bien sur installé tous les composants nécessaires sur ma machine de test, sinon l'application ne se serait meme pas lancée !
et oui, les moteurs m'ont donné la meme chose que toi (logique...) mais je comprends pas pourquoi j'ai cette erreur, car j'ai laissé les parametres par defaut des controles winsock, pour la connection j'ai
cs_gagou9
Messages postés126Date d'inscriptionvendredi 19 septembre 2003StatutMembreDernière intervention20 novembre 2007 13 août 2006 à 20:51
Salut ! (re)
Après vérification, je me suis rendu compte que l'erreur venait du
FTPechange. mais n'ayant pas VB sur moi je ne peux pas tester la
solution proposée, on verra plus tard !