cs_LordBob
Messages postés2865Date d'inscriptionsamedi 2 novembre 2002StatutMembreDernière intervention11 mai 2009
-
28 juin 2004 à 21:19
cs_Darksheep
Messages postés69Date d'inscriptionsamedi 4 novembre 2000StatutMembreDernière intervention15 septembre 2009
-
22 août 2007 à 11:50
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_Darksheep
Messages postés69Date d'inscriptionsamedi 4 novembre 2000StatutMembreDernière intervention15 septembre 2009 22 août 2007 à 11:50
Ok j'ai rien dit... 10/10 !
cs_Darksheep
Messages postés69Date d'inscriptionsamedi 4 novembre 2000StatutMembreDernière intervention15 septembre 2009 22 août 2007 à 11:48
Salut,ça m'a bien l'air d'une tres bonne source pourtant ça ne compile pas (devcpp)
j'ai bien viré les pragma et linké manuellement libcomctl32.a et libwsock32.a
pourtant j'obtient des [Linker error] undefined reference to `WSACreateEvent@0' etc...
Une idée ?
realic
Messages postés16Date d'inscriptionjeudi 16 novembre 2006StatutMembreDernière intervention29 janvier 2016 30 avril 2007 à 08:58
Oui, en fait, j'ai mieux géré les offsets, et ca a marché. Pour tester, le mieux est de faire sur un fichier txt afin de voir si les phrases sont dans le bon ordre.
Mais maintenant ca marche parfaitement, merci pour ton aide.
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 25 avril 2007 à 17:51
Salut,
C'est sur qu'avant d'ecrire dans le fichier, il faut prendre en compte les offsets de la reponse et pas ceux que tu as demandés, car ils peuvent etre different.
Par contre pour le fichier corrompu, je pense qu'il faut logguer toutes les requetes et les reponses et que tu fais, avec les offsets et les content-length des réponses, et verifier 'a la main'.
realic
Messages postés16Date d'inscriptionjeudi 16 novembre 2006StatutMembreDernière intervention29 janvier 2016 25 avril 2007 à 11:44
Salut,
Bon, le téléchargement "par partie" ne fonctionne pas du fait de "fichier corrompu".
Je vais te dire ce que je fais, et peut-être que quelqu'un pourra me dire pourquoi ca ne marche pas :
lors du premier lancement, j'arrête la fonction après récupération de la taille du fichier, donc après lecture dans le header. Puis je défini un pas d'avancement (1/15 de la taille du fichier)
pour les 14 autres lancements (pour tester le téléchargement par partie, en fait, je récupère le fichier découpé en 14 partie) :
pareil sauf que au lieu de faire un get "simple", je lui ajoute les propriétés "Range : bytes=tailleDebut-tailleFin"
tailleDebut est la valeur qu'avait tailleFin lors de la dernière exécution.
tailleFin est égale à sa valeur précédente+pas, sauf si cette valeur est inférieure à la taille réellement téléchargée (qui est sûre diffère à 99%).
Est-ce que quelqu'un aurait une idée? Je pense que c'est du au fait que je prenne en considération les header à chaque fois que je télécharge, mais je ne suis pas sur.
realic
Messages postés16Date d'inscriptionjeudi 16 novembre 2006StatutMembreDernière intervention29 janvier 2016 19 avril 2007 à 09:08
OK merci, je vais regarder son fonctionnement.
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 18 avril 2007 à 17:54
Salut,
Pas du tout, le WriteFile ne fait qu'ecrire sur le disque (comme fwrite). Pour specifier l'offset ou tu veux écrire, il faut utiliser SetFilePointer(comme fseek).
realic
Messages postés16Date d'inscriptionjeudi 16 novembre 2006StatutMembreDernière intervention29 janvier 2016 18 avril 2007 à 10:19
Est-ce que cette fonction est équivalente à faire un seek ?
Car d'après ce que j'ai compris, si je veux faire des dl par parties, sans forcément que celles-ci se suivent, il faut que je puisse écrire à un endroit précis dans le fichier.
Donc, dwRecu correspond au début de l'endroit où l'on écrit, et &dwEcrit correspond à la fin de l'endroit où on écrit ?
par exemple, si on veut écrire des données entre les bytes 1234 et 4567, on écrit :
WriteFile(hFilen,pBuffer,1234,4567,0).
est-ce bien cela, ou est-ce que la fonction fait de manière différente ?
realic
Messages postés16Date d'inscriptionjeudi 16 novembre 2006StatutMembreDernière intervention29 janvier 2016 18 avril 2007 à 09:25
Salut,
Merci pour cette explication, mais est-ce que le logiciel va comprendre qu'il faut qu'il ajoute les données trouvées aux données déjà existantes ?
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 17 avril 2007 à 18:52
Salut,
C'est un petit prog que j'avais posté comme ca, c'est pas vraiment utilisable en vrai pour les raisons que tu as cité. Pour que ca soit vraiment utilisable, faudrait gerer le resuming, splitter le download en plusieurs transferts, faire un traitement d'erreur plus poussé... en bref, faire un vrai download manager.
Pour gerer le resuming en http:
1) requete
On peut demander une partie du fichier en mettant le champ 'Range' dans la requete GET.
Les offsets que l'ont met dans le champ sont tous inclusifs.
Range: bytes=1000-2000 // demander de l'offset 1000 (inclus) a l'offset 2000 (inclus)
ou
Range: bytes=1000- // demander tout le fichier a partir de l'offset 1000 (inclus)
On peut faire d'autres trucs plus compliqué avec Range, mais ca ca suffit pour faire du resuming.
2) reponse
En cas de success, le serveur réponds a une requete qui contient un 'Range' par un code 206 ('Partial Content' ou un truc du genre), et
place un champ 'Content-Range' de cette forme la:
Content-Range: bytes 3668247-7336494/11004733
qui contient de gauche a droite: l'offset de depart des données, l'offset de fin des données, et la taille du fichier.
Souvent, il met aussi un 'Content-Length', mais faut pas trop s'y fier et plutot regarder le 'Content-Range' (a mon avis).
3) support
Et aussi, le serveur indique qu'il supporte les requetes 'Range' en mettant 'Accept-Ranges: bytes' dans toutes ses réponses.
realic
Messages postés16Date d'inscriptionjeudi 16 novembre 2006StatutMembreDernière intervention29 janvier 2016 17 avril 2007 à 17:23
Salut,
Ton programme ne gère pas la fonction "resume", ce qui peut être gênant, car si le dl plante pour x résons, faut tout recommencer.
Je vais essayer de faire cette fonction, mais si quelqu'un sait vraiment comment faire, qu'il me le dise, ou si il l'a déjà fait....
Très bon programme sinon.
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 21 déc. 2005 à 17:43
J'ai essayé oui, mais le serveur me répond toujours
Connection: close dans le header de la réponse
C'est sans doute le serveur qui force la fermeture de la connexion, et visiblement on ne peut rien y faire
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 21 déc. 2005 à 17:38
Salut,
J'avoue que j'en ai aucune idée, as tu essayé de mettre un Connection: Keep-Alive du http/1.0 (pour "forcer" le serveur a garder la connexion) ?
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 21 déc. 2005 à 14:46
J'ai modifié ton code pour passer une requête HTTP 1.1
Visiblement c'est possible (http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html), mais je n'y arrive pas car je recois une demande de fermeture du serveur, alors que dans le rfc c'est écrit de supposer qu'il n'y en n'aura pas
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 21 déc. 2005 à 13:48
Serait-il possible de la même manière de télécharger plusieurs fichiers (envoyer plusieurs requêtes) à la suite, en ne se connectant qu'une fois. Ici on recoit un FD_CLOSE donc j'ai l'impression que non, mais peut être qu'il y a quelque chose à modifier pour que ce soit possible?
Merci
cs_Nebula
Messages postés787Date d'inscriptionsamedi 8 juin 2002StatutMembreDernière intervention 7 juin 20072 25 juil. 2005 à 13:39
Source très instructive, merci ;-)
cs_HerveRV
Messages postés3Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention 7 janvier 2005 7 janv. 2005 à 12:48
sisi, ça vient de ton programme, que j'ai modifié pour avoir des détails
je me rappelle plus comment, mais quand y a un probleme lors de la requette, j'ai demandé a voir un message d'erreur détaillé, que j'ai montré dans mon post
sinon, c pas grave, bosse bien ton projet, et bonne chance dans tes études ;)
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 7 janv. 2005 à 02:04
Salut,
Le "HTTP/1.1 404 Not Found" est copié de ton premier post.
C'est ton navigateur qui a du te sortir ca (pas mon prog en tout cas).
Pour la mise à jour, je pense pas que ca va etre possible car je suis sur un autre projet qui me prend pas mal de temp, et en plus les examens approchent..
cs_HerveRV
Messages postés3Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention 7 janvier 2005 7 janv. 2005 à 01:45
aardman, le 3eme fichier est un fichier sur le ftp d'un pote ;)
il a du virer son fichier entre temps !
mais malgré tout, si tu peux mettre a jour ton programme pour qu'il marche avec tous type d'url, ça me serait utile a moi et des amis, car c vraiment pratique :p
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 6 janv. 2005 à 19:08
Salut,
joeblack59 > il faut créer un projet win32 pour compiler le prog.
HerveRV (avec pas mal de retard) >
pour la deuxieme url, je pense que l'erreur se situe au niveau de la fonction qui analyse l'url, et donc la connexion doit se faire sur un mauvais host/port, d'ou l'erreur de connexion.
pour la troisieme url, je vois pas de probleme: mon prog affiche "Fichier introuvable", et le navigateur t'affiche "HTTP/1.1 404 Not Found".
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 6 janv. 2005 à 19:02
Faut faire un projet Win32 GUI et non console.
joeblack59
Messages postés5Date d'inscriptionjeudi 28 octobre 2004StatutMembreDernière intervention 6 janvier 2005 6 janv. 2005 à 18:54
ton programme m'a l'air vraiment intéressant, mais quand j'appuie sur entrée, il me fait rien! le telechargement ne se fait pas!
quand je vais au niveau du programme, il compile bien, mais il link pas : il me met deux erreurs :
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/zzz.exe : fatal error LNK1120: 1 unresolved externals
je comprends pas à quoi, c du? c un pbm de librairies?
je suis débutant...
merci
cs_HerveRV
Messages postés3Date d'inscriptiondimanche 13 avril 2003StatutMembreDernière intervention 7 janvier 2005 20 oct. 2004 à 00:16
Envoi de la requette http au serveur...
Fichier introuvable. détails :
HTTP/1.1 404 Not Found
Date: Tue, 19 Oct 2004 21:53:45 GMT
Server: Apache
Connection: close
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>404 Not Found</TITLE>
</HEAD>
Not Found
The requested URL /site/cv/cv.pdf was not found on this server.
<HR>
Apache/1.3.29 Server at www.sebastien-fritz.com Port 80
</HTML>
voila, donc je voudrais savoir pkoi ça fonctionne pas, alors dans un navigateur ça fonctionne !!!
merci
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 15 sept. 2004 à 18:59
Ne serait pas une combinaison de 6 ans pour l'un et 6 mois pour l'autre ?
Ou aurais je encore dit une connerie ?
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 15 sept. 2004 à 12:45
66 ans... Je parie que guy est a gauche
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 13 sept. 2004 à 18:36
va dans les options de ton compte, menu a gauche.
Prepare avant un PETIT jpg au besoin.
cs_guyvdv
Messages postés101Date d'inscriptionsamedi 16 mars 2002StatutMembreDernière intervention19 mai 20111 13 sept. 2004 à 18:19
Petite Question :
Comment je mets une foto dans mon profile au lieu du point d'interogation
Guy
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 13 sept. 2004 à 18:14
Y a eu VS 2002 puis le 2003 depuis et dans quelques moi arrivera le 2005.
cs_guyvdv
Messages postés101Date d'inscriptionsamedi 16 mars 2002StatutMembreDernière intervention19 mai 20111 13 sept. 2004 à 18:13
Esseque VC6 est trop vieux , il y a plus nouveau?
Tu travaille avec quoi ?
CA FONCTIONNE
A gauche dans FileView/SourceFiles un click droit et on a un menu ou on peut ajouter des fichier
(ceux-ci pour le amateur qui lisent avec nous)
Merci et je continu
Guy
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 13 sept. 2004 à 18:00
Je n'ai plus de VC6 depuis pas mal de temps mais y aurait pas un menu popup quand clic droit sur nom de projet dans la fenetre view project ? un truc 'insert files' ou machin de ce genre.
Les fichiers a inserer sont:
resource.h
resource.rc
1.ico
download.cpp
cs_guyvdv
Messages postés101Date d'inscriptionsamedi 16 mars 2002StatutMembreDernière intervention19 mai 20111 13 sept. 2004 à 17:52
Cher BruNews,
Dans VC6 il y a les possibilité d'ouvrire les project:
ATL Com App Wizard
Cluster Resource Type Wiz(ard)
Custom App Wiz
Database Project
Dev Studio Add-in Wiz
Extended Stord Proc Wiz
ISAPI Extension Wiz
MakeFile
MFC ActiveX Control Wiz
MFC App Wiz(DLL)
MFC App Wiz(EXE)
New Database Wiz
Utility Proj
Win32 Application
Win32 Console Appli
Win32 Dynamic-Link Library
Win32 Static Lib
J'ai choisis "Win32 Application"
J'ai construi un proj vide.
J'ai copié des fichiers:
main.cpp
res.rc
resource.h
url_code.sln
url_code.vcproj
Release
l ib
main.dsp
Debug
main.ncb
main.plg
main.opt
main.dsw
Ceux avec l'extension h,rc,cpp
ico il y en avai pas
Dans VisStudio VC 6 j'ai cherché pour trouver insert fichiers existants, mais je n'ai pas trouvé.
Et Maintenant ??
Guy
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 10 sept. 2004 à 16:09
aardman c'est VC6 pour lui.
Fais un new proj win32 APP GUI et VIDE.
Copie h, rc, cpp et ico dans dossier du proj. Dans VS tu fais insert fichiers existants *.* et tu select tout en 1 passe.
Devrait compiler.
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 10 sept. 2004 à 16:03
Salut,
Si tu as Visual Studio d'installé, normalement tu as juste a double-cliquer sur le fichier *.vcproj ou le *.sln pour ouvrir le projet.
cs_guyvdv
Messages postés101Date d'inscriptionsamedi 16 mars 2002StatutMembreDernière intervention19 mai 20111 10 sept. 2004 à 15:30
Bonjour Aardman ( en hollandais hommes de la terre )
Je suis plustot vb, mais j'essaye un peut le VC.
Ta source est excellente pour apprendre un peu le va et vient d'internet.
Mais ...
Le fichier exe fonctionne ( naturellement) tres bien mais je ne vois pas comment l'implenter dans VC de visualStudio6
Avec VB il suffi de double cliquer sur la source *.vbp mais cela je n'ai pas trouver pour VC6.
Peut tu m'aider
Guy van der velden
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 2 juil. 2004 à 12:11
Salut,
Pour DevC++, je faut que tu enleves les #pragma comments du code et que tu link les lib directement dans les options du projet.
Mingain
Messages postés44Date d'inscriptionmercredi 16 juin 2004StatutMembreDernière intervention24 février 2006 2 juil. 2004 à 10:08
ma source ne fonctionne pas avec DevC++ ! Dommage ...
neo_00110010101
Messages postés360Date d'inscriptionsamedi 27 septembre 2003StatutMembreDernière intervention30 mai 2006 29 juin 2004 à 11:51
j'ai essayé avec l'image de ma page d'acceuil :
- le copier/coller marche
- la progress bar utile
- affichage temps restant (*)
- affichage de la vitesse
(*) petit problème, à la fin du téléchargement c'est toujours marqué [1 sec]
en plus, ça marche (bah oui !) et même si on arrête le DL, on a quand même un résultat (au moins pour les images)
Donc c'est excellent !!!!!!!!!!!!!!!! 10/10 (dommage que ça ne fait pas monter la note) ^^
vecchio56
Messages postés6535Date d'inscriptionlundi 16 décembre 2002StatutMembreDernière intervention22 août 201014 29 juin 2004 à 01:21
wunderbar!
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 29 juin 2004 à 01:02
oui, il me semble qu'il y a de jolies plages la bas, et en plus c'est pas trop loin de chez moi.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 29 juin 2004 à 00:13
bah oui comme d'hab j'avais fait la 1ere correction comme un sauvage.
Saint Aigulf ça doit te causer ? Surement je fais un saut la-bas vers octobre, je te dirai.
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 28 juin 2004 à 23:55
Salut,
LordBob: merci pour le commentaire ! Comme tu dis, je trainais plus trop sur cppfrance à cause du bac mais maintenant je suis en vacance donc me revoila..
Brunews: merci pour les corrections, j'ai mis la source a jour avec la version "propre" de la fonction. C'etait la derniere fonction que j'avais a faire, je devais etre trop pressé de finir.
cs_LordBob
Messages postés2865Date d'inscriptionsamedi 2 novembre 2002StatutMembreDernière intervention11 mai 20099 28 juin 2004 à 21:19
source de grande qualité qui montre bien comment telecharger un fichier depuis internet... de plus cela fesait un moment que je n'avais pas vu aardman trainé du coté de cppfrance...
enfin tres bon exemple...
22 août 2007 à 11:50
22 août 2007 à 11:48
j'ai bien viré les pragma et linké manuellement libcomctl32.a et libwsock32.a
pourtant j'obtient des [Linker error] undefined reference to `WSACreateEvent@0' etc...
Une idée ?
30 avril 2007 à 08:58
Mais maintenant ca marche parfaitement, merci pour ton aide.
25 avril 2007 à 17:51
C'est sur qu'avant d'ecrire dans le fichier, il faut prendre en compte les offsets de la reponse et pas ceux que tu as demandés, car ils peuvent etre different.
Par contre pour le fichier corrompu, je pense qu'il faut logguer toutes les requetes et les reponses et que tu fais, avec les offsets et les content-length des réponses, et verifier 'a la main'.
25 avril 2007 à 11:44
Bon, le téléchargement "par partie" ne fonctionne pas du fait de "fichier corrompu".
Je vais te dire ce que je fais, et peut-être que quelqu'un pourra me dire pourquoi ca ne marche pas :
lors du premier lancement, j'arrête la fonction après récupération de la taille du fichier, donc après lecture dans le header. Puis je défini un pas d'avancement (1/15 de la taille du fichier)
pour les 14 autres lancements (pour tester le téléchargement par partie, en fait, je récupère le fichier découpé en 14 partie) :
pareil sauf que au lieu de faire un get "simple", je lui ajoute les propriétés "Range : bytes=tailleDebut-tailleFin"
tailleDebut est la valeur qu'avait tailleFin lors de la dernière exécution.
tailleFin est égale à sa valeur précédente+pas, sauf si cette valeur est inférieure à la taille réellement téléchargée (qui est sûre diffère à 99%).
Est-ce que quelqu'un aurait une idée? Je pense que c'est du au fait que je prenne en considération les header à chaque fois que je télécharge, mais je ne suis pas sur.
19 avril 2007 à 09:08
18 avril 2007 à 17:54
Pas du tout, le WriteFile ne fait qu'ecrire sur le disque (comme fwrite). Pour specifier l'offset ou tu veux écrire, il faut utiliser SetFilePointer(comme fseek).
18 avril 2007 à 10:19
WriteFile(hFile, pBuffer, dwRecu, &dwEcrit, 0);
Est-ce que cette fonction est équivalente à faire un seek ?
Car d'après ce que j'ai compris, si je veux faire des dl par parties, sans forcément que celles-ci se suivent, il faut que je puisse écrire à un endroit précis dans le fichier.
Donc, dwRecu correspond au début de l'endroit où l'on écrit, et &dwEcrit correspond à la fin de l'endroit où on écrit ?
par exemple, si on veut écrire des données entre les bytes 1234 et 4567, on écrit :
WriteFile(hFilen,pBuffer,1234,4567,0).
est-ce bien cela, ou est-ce que la fonction fait de manière différente ?
18 avril 2007 à 09:25
Merci pour cette explication, mais est-ce que le logiciel va comprendre qu'il faut qu'il ajoute les données trouvées aux données déjà existantes ?
17 avril 2007 à 18:52
C'est un petit prog que j'avais posté comme ca, c'est pas vraiment utilisable en vrai pour les raisons que tu as cité. Pour que ca soit vraiment utilisable, faudrait gerer le resuming, splitter le download en plusieurs transferts, faire un traitement d'erreur plus poussé... en bref, faire un vrai download manager.
Pour gerer le resuming en http:
1) requete
On peut demander une partie du fichier en mettant le champ 'Range' dans la requete GET.
Les offsets que l'ont met dans le champ sont tous inclusifs.
Range: bytes=1000-2000 // demander de l'offset 1000 (inclus) a l'offset 2000 (inclus)
ou
Range: bytes=1000- // demander tout le fichier a partir de l'offset 1000 (inclus)
On peut faire d'autres trucs plus compliqué avec Range, mais ca ca suffit pour faire du resuming.
2) reponse
En cas de success, le serveur réponds a une requete qui contient un 'Range' par un code 206 ('Partial Content' ou un truc du genre), et
place un champ 'Content-Range' de cette forme la:
Content-Range: bytes 3668247-7336494/11004733
qui contient de gauche a droite: l'offset de depart des données, l'offset de fin des données, et la taille du fichier.
Souvent, il met aussi un 'Content-Length', mais faut pas trop s'y fier et plutot regarder le 'Content-Range' (a mon avis).
3) support
Et aussi, le serveur indique qu'il supporte les requetes 'Range' en mettant 'Accept-Ranges: bytes' dans toutes ses réponses.
17 avril 2007 à 17:23
Ton programme ne gère pas la fonction "resume", ce qui peut être gênant, car si le dl plante pour x résons, faut tout recommencer.
Je vais essayer de faire cette fonction, mais si quelqu'un sait vraiment comment faire, qu'il me le dise, ou si il l'a déjà fait....
Très bon programme sinon.
21 déc. 2005 à 17:43
Connection: close dans le header de la réponse
C'est sans doute le serveur qui force la fermeture de la connexion, et visiblement on ne peut rien y faire
21 déc. 2005 à 17:38
J'avoue que j'en ai aucune idée, as tu essayé de mettre un Connection: Keep-Alive du http/1.0 (pour "forcer" le serveur a garder la connexion) ?
21 déc. 2005 à 14:46
Visiblement c'est possible (http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html), mais je n'y arrive pas car je recois une demande de fermeture du serveur, alors que dans le rfc c'est écrit de supposer qu'il n'y en n'aura pas
21 déc. 2005 à 13:48
Merci
25 juil. 2005 à 13:39
7 janv. 2005 à 12:48
je me rappelle plus comment, mais quand y a un probleme lors de la requette, j'ai demandé a voir un message d'erreur détaillé, que j'ai montré dans mon post
sinon, c pas grave, bosse bien ton projet, et bonne chance dans tes études ;)
7 janv. 2005 à 02:04
Le "HTTP/1.1 404 Not Found" est copié de ton premier post.
C'est ton navigateur qui a du te sortir ca (pas mon prog en tout cas).
Pour la mise à jour, je pense pas que ca va etre possible car je suis sur un autre projet qui me prend pas mal de temp, et en plus les examens approchent..
7 janv. 2005 à 01:45
il a du virer son fichier entre temps !
mais malgré tout, si tu peux mettre a jour ton programme pour qu'il marche avec tous type d'url, ça me serait utile a moi et des amis, car c vraiment pratique :p
6 janv. 2005 à 19:08
joeblack59 > il faut créer un projet win32 pour compiler le prog.
HerveRV (avec pas mal de retard) >
pour la deuxieme url, je pense que l'erreur se situe au niveau de la fonction qui analyse l'url, et donc la connexion doit se faire sur un mauvais host/port, d'ou l'erreur de connexion.
pour la troisieme url, je vois pas de probleme: mon prog affiche "Fichier introuvable", et le navigateur t'affiche "HTTP/1.1 404 Not Found".
6 janv. 2005 à 19:02
6 janv. 2005 à 18:54
quand je vais au niveau du programme, il compile bien, mais il link pas : il me met deux erreurs :
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/zzz.exe : fatal error LNK1120: 1 unresolved externals
je comprends pas à quoi, c du? c un pbm de librairies?
je suis débutant...
merci
20 oct. 2004 à 00:16
par contre, j'ai fais un essai avec le fichier
http://www.kiss-cool.com/KissCool_2.mpg
ça fonctionne
le fichier
http://underfire.no-ip.com:8000/xoops/upload4u/ace1_wmv9.avi
donne "Erreur lors de la connexion."
et le fichier
http://www.sebastien-fritz.com/site/cv/cv.pdf
me donne ceci :
Envoi de la requette http au serveur...
Fichier introuvable. détails :
HTTP/1.1 404 Not Found
Date: Tue, 19 Oct 2004 21:53:45 GMT
Server: Apache
Connection: close
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>404 Not Found</TITLE>
</HEAD>
Not Found
The requested URL /site/cv/cv.pdf was not found on this server.
<HR>
Apache/1.3.29 Server at www.sebastien-fritz.com Port 80
</HTML>
voila, donc je voudrais savoir pkoi ça fonctionne pas, alors dans un navigateur ça fonctionne !!!
merci
15 sept. 2004 à 18:59
Ou aurais je encore dit une connerie ?
15 sept. 2004 à 12:45
13 sept. 2004 à 18:36
Prepare avant un PETIT jpg au besoin.
13 sept. 2004 à 18:19
Comment je mets une foto dans mon profile au lieu du point d'interogation
Guy
13 sept. 2004 à 18:14
13 sept. 2004 à 18:13
Tu travaille avec quoi ?
CA FONCTIONNE
A gauche dans FileView/SourceFiles un click droit et on a un menu ou on peut ajouter des fichier
(ceux-ci pour le amateur qui lisent avec nous)
Merci et je continu
Guy
13 sept. 2004 à 18:00
Les fichiers a inserer sont:
resource.h
resource.rc
1.ico
download.cpp
13 sept. 2004 à 17:52
Dans VC6 il y a les possibilité d'ouvrire les project:
ATL Com App Wizard
Cluster Resource Type Wiz(ard)
Custom App Wiz
Database Project
Dev Studio Add-in Wiz
Extended Stord Proc Wiz
ISAPI Extension Wiz
MakeFile
MFC ActiveX Control Wiz
MFC App Wiz(DLL)
MFC App Wiz(EXE)
New Database Wiz
Utility Proj
Win32 Application
Win32 Console Appli
Win32 Dynamic-Link Library
Win32 Static Lib
J'ai choisis "Win32 Application"
J'ai construi un proj vide.
J'ai copié des fichiers:
main.cpp
res.rc
resource.h
url_code.sln
url_code.vcproj
Release
l ib
main.dsp
Debug
main.ncb
main.plg
main.opt
main.dsw
Ceux avec l'extension h,rc,cpp
ico il y en avai pas
Dans VisStudio VC 6 j'ai cherché pour trouver insert fichiers existants, mais je n'ai pas trouvé.
Et Maintenant ??
Guy
10 sept. 2004 à 16:09
Fais un new proj win32 APP GUI et VIDE.
Copie h, rc, cpp et ico dans dossier du proj. Dans VS tu fais insert fichiers existants *.* et tu select tout en 1 passe.
Devrait compiler.
10 sept. 2004 à 16:03
Si tu as Visual Studio d'installé, normalement tu as juste a double-cliquer sur le fichier *.vcproj ou le *.sln pour ouvrir le projet.
10 sept. 2004 à 15:30
Je suis plustot vb, mais j'essaye un peut le VC.
Ta source est excellente pour apprendre un peu le va et vient d'internet.
Mais ...
Le fichier exe fonctionne ( naturellement) tres bien mais je ne vois pas comment l'implenter dans VC de visualStudio6
Avec VB il suffi de double cliquer sur la source *.vbp mais cela je n'ai pas trouver pour VC6.
Peut tu m'aider
Guy van der velden
2 juil. 2004 à 12:11
Pour DevC++, je faut que tu enleves les #pragma comments du code et que tu link les lib directement dans les options du projet.
2 juil. 2004 à 10:08
29 juin 2004 à 11:51
- le copier/coller marche
- la progress bar utile
- affichage temps restant (*)
- affichage de la vitesse
(*) petit problème, à la fin du téléchargement c'est toujours marqué [1 sec]
en plus, ça marche (bah oui !) et même si on arrête le DL, on a quand même un résultat (au moins pour les images)
Donc c'est excellent !!!!!!!!!!!!!!!! 10/10 (dommage que ça ne fait pas monter la note) ^^
29 juin 2004 à 01:21
29 juin 2004 à 01:02
29 juin 2004 à 00:13
Saint Aigulf ça doit te causer ? Surement je fais un saut la-bas vers octobre, je te dirai.
28 juin 2004 à 23:55
LordBob: merci pour le commentaire ! Comme tu dis, je trainais plus trop sur cppfrance à cause du bac mais maintenant je suis en vacance donc me revoila..
Brunews: merci pour les corrections, j'ai mis la source a jour avec la version "propre" de la fonction. C'etait la derniere fonction que j'avais a faire, je devais etre trop pressé de finir.
28 juin 2004 à 21:19
enfin tres bon exemple...