Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Tests de KGF.dll | |
|
+5Yannick Nardo26 Jicehel Klaus jimx78 9 participants | |
Auteur | Message |
---|
jimx78
Nombre de messages : 241 Age : 33 Localisation : Yvelines Date d'inscription : 24/05/2010
| Sujet: Tests de KGF.dll Sam 6 Juin 2015 - 1:16 | |
| Bonsoir klaus, Je crée ce topic puisque mes prochains test serons ici. C'est le meilleur endroit pour éviter de crée plein de topic. J'ai mon premier programme avec ta dll, cela se connecte à un ftp. Je l’améliorerai dimanche. Il faut KGF.dll dans le même dossier - Code:
-
' PROGRAMME PRINCIPALE########################################################## label quitter_programme , connexion_ftp , deconnexion_ftp , tester_connexion_ftp dim res%, server$, id$, pwd$ , port% dll_on "KGF.dll"
' ############################################################################## edit 1 : hint 1,"Serveur" : width 1,300 : top 1,10 : left 1,10 edit 2 : hint 2,"Utilisateur" : width 2,300 : top 2,40 : left 2,10
edit 3 : hint 3,"Mot de passe" : width 3,300 : top 3,70 : left 3,10 edit 4 : hint 4,"Numéro de port (21 si vide)" : width 4,300 : top 4,100 : left 4,10
button 5 : caption 5,"Connexion" : width 5,300 : top 5,130 : left 5,10 : on_click 5,connexion_ftp button 6 : caption 6,"Déconnexion" : width 6,300 : top 6,160 : left 6,10 : on_click 6,deconnexion_ftp button 7 : caption 7,"Tester la connexion" : width 7,300 : top 7,190 : left 7,10 : on_click 7,tester_connexion_ftp Alpha 8 : caption 8,"Déconnecter" : top 8,220 : left 8,10 : color 8,255,0,0
text 1,"minecraft33.omgserv.com" text 2,"11469_test" text 3,"panoramic"
on_close 0,quitter_programme end : ' PROGRAMME PRINCIPALE#################################################FIN ' SOUS PROGRAMME PRINCIPALE#####################################################
quitter_programme: timer_off_all res% = dll_call1("KillProcessByHandle",handle(0)) return
connexion_ftp: if len(text$(1)) > 0 then server$ = text$(1) if len(text$(2)) > 0 then id$ = text$(2) if len(text$(3)) > 0 then pwd$ = text$(3) if len(text$(4)) > 0 then port% = text$(4)
res% = dll_call3("IdentifyMyFTP",adr(server$),adr(id$),adr(pwd$)) res% = dll_call1("OpenFTP",port%) goto tester_connexion_ftp return
deconnexion_ftp: res% = dll_call0("CloseFTP") goto tester_connexion_ftp return
tester_connexion_ftp: res% = dll_call0("IsFTPOnline") if res% = 1 caption 8,"Connecter" : color 8,0,255,0 else caption 8,"Déconnecter" : color 8,255,0,0 end_if return
' SOUS PROGRAMME PRINCIPALE##################################################FIN | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Tests de KGF.dll Sam 6 Juin 2015 - 1:28 | |
| Bravo, tu as saisi le principe ! Ca marche. Je te suggère d'éviter les GOTO et de les remplacer par des GOSUB ou des appels à des SUBs. Voici cette petite modif mineure, qui ne change rien au fonctionnement de ton programme: - Code:
-
' PROGRAMME PRINCIPALE########################################################## label quitter_programme , connexion_ftp , deconnexion_ftp , tester_connexion_ftp dim res%, server$, id$, pwd$ , port% dll_on "KGF.dll"
' ############################################################################## edit 1 : hint 1,"Serveur" : width 1,300 : top 1,10 : left 1,10 edit 2 : hint 2,"Utilisateur" : width 2,300 : top 2,40 : left 2,10
edit 3 : hint 3,"Mot de passe" : width 3,300 : top 3,70 : left 3,10 edit 4 : hint 4,"Numéro de port (21 si vide)" : width 4,300 : top 4,100 : left 4,10
button 5 : caption 5,"Connexion" : width 5,300 : top 5,130 : left 5,10 : on_click 5,connexion_ftp button 6 : caption 6,"Déconnexion" : width 6,300 : top 6,160 : left 6,10 : on_click 6,deconnexion_ftp button 7 : caption 7,"Tester la connexion" : width 7,300 : top 7,190 : left 7,10 : on_click 7,tester_connexion_ftp Alpha 8 : caption 8,"Déconnecter" : top 8,220 : left 8,10 : color 8,255,0,0
text 1,"minecraft33.omgserv.com" text 2,"11469_test" text 3,"panoramic"
on_close 0,quitter_programme end : ' PROGRAMME PRINCIPALE#################################################FIN ' SOUS PROGRAMME PRINCIPALE#####################################################
quitter_programme: timer_off_all res% = dll_call1("KillProcessByHandle",handle(0)) ' return <====== ne sera jamais exécuté !
connexion_ftp: if len(text$(1)) > 0 then server$ = text$(1) if len(text$(2)) > 0 then id$ = text$(2) if len(text$(3)) > 0 then pwd$ = text$(3) if len(text$(4)) > 0 then port% = text$(4)
res% = dll_call3("IdentifyMyFTP",adr(server$),adr(id$),adr(pwd$)) res% = dll_call1("OpenFTP",port%) gosub tester_connexion_ftp return
deconnexion_ftp: res% = dll_call0("CloseFTP") gosub tester_connexion_ftp return
tester_connexion_ftp: res% = dll_call0("IsFTPOnline") if res% = 1 caption 8,"Connecter" : color 8,0,255,0 else caption 8,"Déconnecter" : color 8,255,0,0 end_if return
' SOUS PROGRAMME PRINCIPALE##################################################FIN | |
| | | jimx78
Nombre de messages : 241 Age : 33 Localisation : Yvelines Date d'inscription : 24/05/2010
| Sujet: Re: Tests de KGF.dll Sam 6 Juin 2015 - 1:57 | |
| Effectivement, je sais pas pourquoi j'ai utiliser les goto au lieu de gosub^^ Voici ma V2 : - Code:
-
' PROGRAMME PRINCIPALE########################################################## label quitter_programme , connexion_ftp , deconnexion_ftp , tester_connexion_ftp dim res%, server$, id$, pwd$ , port% height 0,600 : width 0,340 : top 0,screen_y/5 : left 0,screen_x/3 dll_on "KGF.dll"
' ############################################################################## edit 1 : hint 1,"Serveur" : width 1,300 : top 1,10 : left 1,10 edit 2 : hint 2,"Utilisateur" : width 2,300 : top 2,40 : left 2,10
edit 3 : hint 3,"Mot de passe" : width 3,300 : top 3,70 : left 3,10 edit 4 : hint 4,"Numéro de port (21 si vide)" : width 4,300 : top 4,100 : left 4,10
button 5 : caption 5,"Connexion" : width 5,300 : top 5,130 : left 5,10 : on_click 5,connexion_ftp button 6 : caption 6,"Déconnexion" : width 6,300 : top 6,160 : left 6,10 : on_click 6,deconnexion_ftp button 7 : caption 7,"Tester la connexion" : width 7,300 : top 7,190 : left 7,10 : on_click 7,tester_connexion_ftp Alpha 8 : caption 8,"Déconnecter" : top 8,220 : left 8,10 : color 8,255,0,0
memo 9 : width 9,300 : height 9,300: top 9,250 : left 9,10 : bar_vertical 9
text 1,"minecraft33.omgserv.com" text 2,"11469_test" text 3,"panoramic"
on_close 0,quitter_programme end : ' PROGRAMME PRINCIPALE#################################################FIN ' SOUS PROGRAMME PRINCIPALE#####################################################
quitter_programme: timer_off_all res% = dll_call1("KillProcessByHandle",handle(0)) return
connexion_ftp: clear 9 if len(text$(1)) > 0 then server$ = text$(1) if len(text$(2)) > 0 then id$ = text$(2) if len(text$(3)) > 0 then pwd$ = text$(3) if len(text$(4)) > 0 then port% = text$(4)
res% = dll_call3("IdentifyMyFTP",adr(server$),adr(id$),adr(pwd$)) res% = dll_call1("OpenFTP",port%) gosub tester_connexion_ftp if res% = 1 res% = dll_call1("GetCurrentFolderFilesOnFTP",handle(9)) end_if return
deconnexion_ftp: clear 9 res% = dll_call0("CloseFTP") gosub tester_connexion_ftp return
tester_connexion_ftp: res% = dll_call0("IsFTPOnline") if res% = 1 caption 8,"Connecter" : color 8,0,255,0 else caption 8,"Déconnecter" : color 8,255,0,0 end_if return
' SOUS PROGRAMME PRINCIPALE##################################################FIN | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Tests de KGF.dll Sam 6 Juin 2015 - 9:35 | |
| Très bien ! Ca progresse. Tu pourrais inactiver les boutons pendant la phase de connexion pour éviter une fausse manipulation, et les réactiver à la fin, comme ceci: - Code:
-
connexion_ftp: inactive 5 : inactive 6 : inactive 7 clear 9 if len(text$(1)) > 0 then server$ = text$(1) if len(text$(2)) > 0 then id$ = text$(2) if len(text$(3)) > 0 then pwd$ = text$(3) if len(text$(4)) > 0 then port% = text$(4)
res% = dll_call3("IdentifyMyFTP",adr(server$),adr(id$),adr(pwd$)) res% = dll_call1("OpenFTP",port%) gosub tester_connexion_ftp if res% = 1 res% = dll_call1("GetCurrentFolderFilesOnFTP",handle(9)) end_if active 5 : active 6 : active 7 return | |
| | | jimx78
Nombre de messages : 241 Age : 33 Localisation : Yvelines Date d'inscription : 24/05/2010
| Sujet: Re: Tests de KGF.dll Sam 6 Juin 2015 - 9:41 | |
| J'ai une Question, pourquoi si je clique sur connexion, et apres une quand la connexion eT établit, si je clique sur deconexion, Si j'appuie sur connexion j'ai panoramic qui plante systématiquement ? Pourtant j'attend 1 minute entre chaque commande au cas ou
Ou expliquer plus facilement : Ceci me fait un bug a tout les coups : 1-Connexion 2-attendre la connexion 3-connecter appuyer sur deconexion 4-attendre pour etre sur de la deconexion 5-cliquer sur connexion
Il j'ai panoramic qui ne repond plus a chaque fois | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Tests de KGF.dll Sam 6 Juin 2015 - 12:10 | |
| Cela vient du fait que tu refais, à chaque connexion, l'identification du FTP. J"ai défini une variable first% pour ne le faire que la première fois, et il n'y a plus de problème: - Code:
-
' PROGRAMME PRINCIPALE########################################################## label quitter_programme , connexion_ftp , deconnexion_ftp , tester_connexion_ftp dim res%, server$, id$, pwd$ , port% dim first% : first% = 1 height 0,600 : width 0,340 : top 0,screen_y/5 : left 0,screen_x/3 dll_on "KGF.dll"
' ############################################################################## edit 1 : hint 1,"Serveur" : width 1,300 : top 1,10 : left 1,10 edit 2 : hint 2,"Utilisateur" : width 2,300 : top 2,40 : left 2,10
edit 3 : hint 3,"Mot de passe" : width 3,300 : top 3,70 : left 3,10 edit 4 : hint 4,"Numéro de port (21 si vide)" : width 4,300 : top 4,100 : left 4,10
button 5 : caption 5,"Connexion" : width 5,300 : top 5,130 : left 5,10 : on_click 5,connexion_ftp button 6 : caption 6,"Déconnexion" : width 6,300 : top 6,160 : left 6,10 : on_click 6,deconnexion_ftp button 7 : caption 7,"Tester la connexion" : width 7,300 : top 7,190 : left 7,10 : on_click 7,tester_connexion_ftp Alpha 8 : caption 8,"Déconnecter" : top 8,220 : left 8,10 : color 8,255,0,0
memo 9 : width 9,300 : height 9,300: top 9,250 : left 9,10 : bar_vertical 9
text 1,"minecraft33.omgserv.com" text 2,"11469_test" text 3,"panoramic"
on_close 0,quitter_programme end : ' PROGRAMME PRINCIPALE#################################################FIN ' SOUS PROGRAMME PRINCIPALE#####################################################
quitter_programme: timer_off_all res% = dll_call1("KillProcessByHandle",handle(0)) return
connexion_ftp: inactive 5 : inactive 6 : inactive 7 clear 9 if len(text$(1)) > 0 then server$ = text$(1) if len(text$(2)) > 0 then id$ = text$(2) if len(text$(3)) > 0 then pwd$ = text$(3) if len(text$(4)) > 0 then port% = val(text$(4))
if first%=1 res% = dll_call3("IdentifyMyFTP",adr(server$),adr(id$),adr(pwd$)) first% = 0 end_if res% = dll_call1("OpenFTP",port%) gosub tester_connexion_ftp if res% = 1 res% = dll_call1("GetCurrentFolderFilesOnFTP",handle(9)) end_if active 5 : active 6 : active 7 return
deconnexion_ftp: clear 9 res% = dll_call0("CloseFTP") gosub tester_connexion_ftp return
tester_connexion_ftp: res% = dll_call0("IsFTPOnline") if res% = 1 caption 8,"Connecté" : color 8,0,255,0 else caption 8,"Déconnecté" : color 8,255,0,0 end_if return
' SOUS PROGRAMME PRINCIPALE##################################################FIN Ceci dit, ce que je viens de te donner, c'est juste un moyen de contourner le problème. Il s'agit bien d'un bug que je devrai corriger. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Tests de KGF.dll Sam 6 Juin 2015 - 12:49 | |
| C'est corrigé ! Télécharge la nouvelle version de KGF.dll, et ton programme initial marchera: - Code:
-
' PROGRAMME PRINCIPALE########################################################## label quitter_programme , connexion_ftp , deconnexion_ftp , tester_connexion_ftp dim res%, server$, id$, pwd$ , port% height 0,600 : width 0,340 : top 0,screen_y/5 : left 0,screen_x/3 dll_on "KGF.dll"
' ############################################################################## edit 1 : hint 1,"Serveur" : width 1,300 : top 1,10 : left 1,10 edit 2 : hint 2,"Utilisateur" : width 2,300 : top 2,40 : left 2,10
edit 3 : hint 3,"Mot de passe" : width 3,300 : top 3,70 : left 3,10 edit 4 : hint 4,"Numéro de port (21 si vide)" : width 4,300 : top 4,100 : left 4,10
button 5 : caption 5,"Connexion" : width 5,300 : top 5,130 : left 5,10 : on_click 5,connexion_ftp button 6 : caption 6,"Déconnexion" : width 6,300 : top 6,160 : left 6,10 : on_click 6,deconnexion_ftp button 7 : caption 7,"Tester la connexion" : width 7,300 : top 7,190 : left 7,10 : on_click 7,tester_connexion_ftp Alpha 8 : caption 8,"Déconnecter" : top 8,220 : left 8,10 : color 8,255,0,0
memo 9 : width 9,300 : height 9,300: top 9,250 : left 9,10 : bar_vertical 9
text 1,"minecraft33.omgserv.com" text 2,"11469_test" text 3,"panoramic"
on_close 0,quitter_programme end : ' PROGRAMME PRINCIPALE#################################################FIN ' SOUS PROGRAMME PRINCIPALE#####################################################
quitter_programme: timer_off_all res% = dll_call1("KillProcessByHandle",handle(0)) return
connexion_ftp: inactive 5 : inactive 6 : inactive 7 clear 9 if len(text$(1)) > 0 then server$ = text$(1) if len(text$(2)) > 0 then id$ = text$(2) if len(text$(3)) > 0 then pwd$ = text$(3) if len(text$(4)) > 0 then port% = val(text$(4))
res% = dll_call3("IdentifyMyFTP",adr(server$),adr(id$),adr(pwd$)) res% = dll_call1("OpenFTP",port%) gosub tester_connexion_ftp if res% = 1 res% = dll_call1("GetCurrentFolderFilesOnFTP",handle(9)) end_if active 5 : active 6 : active 7 return
deconnexion_ftp: clear 9 res% = dll_call0("CloseFTP") gosub tester_connexion_ftp return
tester_connexion_ftp: res% = dll_call0("IsFTPOnline") if res% = 1 caption 8,"Connecté" : color 8,0,255,0 else caption 8,"Déconnecté" : color 8,255,0,0 end_if return
' SOUS PROGRAMME PRINCIPALE##################################################FIN | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Tests de KGF.dll Sam 6 Juin 2015 - 14:18 | |
| Trop rapide ce Klaus | |
| | | jimx78
Nombre de messages : 241 Age : 33 Localisation : Yvelines Date d'inscription : 24/05/2010
| Sujet: Re: Tests de KGF.dll Sam 6 Juin 2015 - 15:37 | |
| Merci klaus ! Quel rapidité !
J'ai découvert un nouveau bug. En Meme temps je les chercher ;D
Je me connecte au FTP Une fois connecter, je coupe ma connexion internet de l'ordinateur,
Ensuite je clique sur tester la connexion, et la tout plante.
Le but est de simuler une perte de connexion d'Internet d'un joueur par exemple.
Je pense que le but de tester si on est connecter au FTP devrais mettre non si il n'y a pas internet ? Ou de cree une fonction pour savoir si on a internet ?
Qu'en pense tu ?
Merci | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Tests de KGF.dll Sam 6 Juin 2015 - 15:46 | |
| En effet, c'est une remarque pertinente. Je vais approfondir la chose... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Tests de KGF.dll Sam 6 Juin 2015 - 15:52 | |
| Chez moi, ça se comporte "normalement"... Je me connecte, je débranche mon câble réseau, puis je fais "Tester connexion", et voici le résultat: Ensuite, on peut faire "Déconnexion" normalement. Je rebranche mon câble, puis "Connexion" et tout est normal. | |
| | | jimx78
Nombre de messages : 241 Age : 33 Localisation : Yvelines Date d'inscription : 24/05/2010
| Sujet: Re: Tests de KGF.dll Lun 8 Juin 2015 - 11:04 | |
| Salut !
J'ai fait des tests et l'on pas eu le Meme resultat. Si je me connecte au ftp, et que je suis connecter, si je coupe la connexion internet de mon ordi, et que je clique sur tester la connexion juste apres, j'ai le programme panoramic.exe qui plante. Je pense qu'il dois y avoir un délais avant d'appuyer sur tester la connexion, pour eviter d'avoir une erreur?!
Pour le screen, Serait t'il possible d'éviter d'avoir ce message d'erreur en fenêtre ? On pourra afficher nous Meme le probleme avec le résultat de la variable qui sera res%=0 ou 1 reussi ou erreur ? Cela permettra de ne pas avoir plein de message d'erreur et d'être au courent de la perte de connexion plus rapidement. (Sauf si cela fonctionne)
Autre chose, la documentation en ligne de KGF.dll contient une mauvaise traduction française pour la fonction UploadFileToFTP, c'est la description de l'ouverture de connexion FTP . Cela n'est pas grave du tout, c'est juste une petite modif de rien du tout ;D
Merci à toi, je continue ma découverte de KGF ce jour, ce ne sera pas mon seul message
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Tests de KGF.dll Lun 8 Juin 2015 - 12:05 | |
| Télécharge la nouvelle version. Les messages d'erreur du FTP ne s'affichent plus par défaut, mais il y a une nouvelle fonction SetFTPMode qui permet d'instruire KGF.dll de les afficher. La doc est à jour, et la petite anomalie que tu as signalée, est corrigée.
Par rapport au problème de liaison interrompue, j'ai fait une série de tests. Il n'y a aucun délai requis. Dès la coupure, "Tester la connexion" retourne "Déconnecté", mais il y a un petit temps de traitement, pour laisser la tentative de connexion aller à son timeout. Mais pas de plantage. | |
| | | jimx78
Nombre de messages : 241 Age : 33 Localisation : Yvelines Date d'inscription : 24/05/2010
| Sujet: Re: Tests de KGF.dll Lun 8 Juin 2015 - 12:24 | |
| A tout les coups j'ai cliquer trop vite sur les boutons et j'ai fait planter le programme tout seul. Je n'est pas laisser la dll finir son travail (time out) Et j'ai eu le message panoramic ne repond pas, j'ai forcer l'arrêt, l'aurais peut etre du attendre^^ je test cela ce soir.
Merci c'est super sympas d'avoir rajouter une option pour le ftp ! Ca fait plaisir, je vais avoir un programme plus propre grâce à ca.
La prochaine étape c'est la conception de plusieurs prototipe sur les semaphore.
J'ai plusieurs idee, comme renomer le fichier avant qu'il sois utiliser par exemple.
Je trouve ça super intéressant. A bientot le premier jeux multijoueur en ligne en panoramic ! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Tests de KGF.dll Lun 8 Juin 2015 - 12:28 | |
| | |
| | | jimx78
Nombre de messages : 241 Age : 33 Localisation : Yvelines Date d'inscription : 24/05/2010
| Sujet: Re: Tests de KGF.dll Lun 8 Juin 2015 - 23:41 | |
| Salut klaus ;D J'ai la V3 de FTP : Clique ici pour le dossier zipOu juste le code : - Code:
-
' PROGRAMME PRINCIPALE########################################################## label quitter_programme , connexion_ftp , deconnexion_ftp , tester_connexion_ftp , envoyer_ftp , recevoir_ftp dim res%, server$, id$, pwd$ , port% dim org$, dest$ , bin% dim fic$ caption 0,"Serveur FTP" : height 0,600 : width 0,340*2 : top 0,screen_y/5 : left 0,screen_x/3 dll_on "KGF.dll"
' ############################################################################## edit 1 : hint 1,"Serveur" : width 1,300 : top 1,10 : left 1,10 edit 2 : hint 2,"Utilisateur" : width 2,300 : top 2,40 : left 2,10
edit 3 : hint 3,"Mot de passe" : width 3,300 : top 3,70 : left 3,10 edit 4 : hint 4,"Numéro de port (21 si vide)" : width 4,300 : top 4,100 : left 4,10
button 5 : caption 5,"Connexion" : width 5,300 : top 5,130 : left 5,10 : on_click 5,connexion_ftp button 6 : caption 6,"Déconnexion" : width 6,300 : top 6,160 : left 6,10 : on_click 6,deconnexion_ftp : inactive 6 button 7 : caption 7,"Tester la connexion" : width 7,300 : top 7,190 : left 7,10 : on_click 7,tester_connexion_ftp : inactive 7 Alpha 8 : caption 8,"Déconnecter" : top 8,220 : left 8,10 : color 8,255,0,0
memo 9 : width 9,300 : height 9,300: top 9,250 : left 9,10 : bar_vertical 9 inactive 9
text 1,"minecraft33.omgserv.com" text 2,"11469_test" text 3,"panoramic"
button 10 : caption 10,"Memo vers FTP + Clique forcer sur FTP vers memo" : width 10,300 : top 10,10 : left 10,330 : on_click 10,envoyer_ftp memo 11 : width 11,300 : height 11,150: top 11,40 : left 11,330 : bar_vertical 11 hint 11,"Message à envoyer"
button 12 : caption 12,"FTP vers memo" : width 12,300 : top 12,250 : left 12,330 : on_click 12,recevoir_ftp memo 13 : width 13,300 : height 13,150: top 13,280 : left 13,330 : bar_vertical 13 hint 13,"Message recu" : inactive 13
bin%=0
timer 14 : timer_interval 14,200 : on_timer 14,recevoir_ftp : timer_off 14 on_close 0,quitter_programme end : ' PROGRAMME PRINCIPALE#################################################FIN ' SOUS PROGRAMME PRINCIPALE#####################################################
quitter_programme: timer_off_all res% = dll_call1("KillProcessByHandle",handle(0)) return
connexion_ftp: inactive 5 : inactive 6 : inactive 7 clear 9 if len(text$(1)) > 0 then server$ = text$(1) if len(text$(2)) > 0 then id$ = text$(2) if len(text$(3)) > 0 then pwd$ = text$(3) if len(text$(4)) > 0 then port% = text$(4)
res% = dll_call3("IdentifyMyFTP",adr(server$),adr(id$),adr(pwd$)) res% = dll_call1("OpenFTP",port%) gosub tester_connexion_ftp if res% = 1 res% = dll_call1("GetCurrentFolderFilesOnFTP",handle(9)) gosub recevoir_ftp end_if return
deconnexion_ftp: res% = dll_call0("CloseFTP") gosub tester_connexion_ftp return
tester_connexion_ftp: res% = dll_call0("IsFTPOnline") if res% = 1 caption 8,"Connecter" : color 8,0,255,0 inactive 5 : active 6 : active 7 timer_on 14 else caption 8,"Déconnecter" : color 8,255,0,0 inactive 6 : active 5 : active 7 timer_off 14 clear 9 end_if return
envoyer_ftp: if file_exists("data.txt")=1 then file_delete "data.txt" file_save 11,"data.txt" fic$ = "data.txt" res% = dll_call2("UploadFileToFTP",adr(fic$),1) goto recevoir_ftp return
recevoir_ftp: clear 13 if file_exists("datalocal.txt")=1 then file_delete "datalocal.txt" org$ = "data.txt" dest$ = "datalocal.txt" res% = dll_call3("DownloadFileFromFTP",adr(org$),adr(dest$),bin%) file_load 13,"datalocal.txt" return
' SOUS PROGRAMME PRINCIPALE##################################################FIN C'est du direct à 200 MS près pour le moment, c'est presque un premier msn ;D | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Tests de KGF.dll Mar 9 Juin 2015 - 0:04 | |
| Je l'ai fait marcher, et c'est nickel ! Je pense que tu es sur la bonne voie. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Tests de KGF.dll Mar 9 Juin 2015 - 7:14 | |
| | |
| | | jimx78
Nombre de messages : 241 Age : 33 Localisation : Yvelines Date d'inscription : 24/05/2010
| Sujet: Re: Tests de KGF.dll Mar 9 Juin 2015 - 19:26 | |
| "J'ai mis un texte dans le mémo du haut, et j'ai cliqué sur le bouton juste au-dessus. Et le texte apparaît dans le mémo du bas - je suppose que c'est ce qui revient du FTP. C'est bien joué !" C'est de klaus le message Je dois vraiment développer mon chat ;D | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Tests de KGF.dll Mar 9 Juin 2015 - 19:36 | |
| C'est bien ça ! Au début, j'hésitais un peu. J'avoue que je n'avais pas regardé le code tout de suite - je l'avais simplement exécuté. Et au début, je n'avais pas bien compris l'utilisation des deux mémos et des deux boutons.
Une suggestion: supprime de deuxième bouton (FTP vers mémo) - je n'en vois pas l'utilité. Et désactive le mémo 13, car il ne sert à rien de saisir du texte dans ce mémo. A part cela, ça marche parfaitement.
Ceci dit, pour un vrai chat, il reste des choses à faire... comme par exemple la prise en compte de deux messages successif du même émetteur. J'ai l'impression que pour le moment, seul le dernier est persistant, en remplaçant le précédent. Je t'avais posté deux messages, en fait... | |
| | | jimx78
Nombre de messages : 241 Age : 33 Localisation : Yvelines Date d'inscription : 24/05/2010
| Sujet: Re: Tests de KGF.dll Mar 9 Juin 2015 - 19:59 | |
| En faite j'ai hésiter à le partager, puisque le but été simplement de tester le ftp.Seul un fichier a le contenus du mémo, c'est pas encore un msn Mais la je commence la conception de mon programme de chat ce soir Si tu a des idées, propose^^ -Pseudo et mot de passe (crypter le mot de passe) -liste des personnes connecter -message : NOM est en train d'écrire -mettre un son à chaque message -plusieurs channel de discutions -possibilité de beeper une personne (wizz) | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Tests de KGF.dll Mar 9 Juin 2015 - 23:50 | |
| Beau projet, jimx78 ! Et tu vas avoir un sacré problème de conception à résoudre !
En effet, en général, ce genre d'application est géré par un logiciel résidant sur un serveur, avec l'appui d'une base de donnée localisée sur le serveur. Et chaque utilisateur est un "client" du serveur, recevant des pages générées par le serveur (en général du PHP créant localement du HTML chez le client). Et ainsi, les problèmes de gestion des données, de synchronisation etc sont résolues par le logiciel du serveur qui est le "maître" et qui attribue des ressources aux clients.
Or, dans ton cas, il faudra concevoir une application uniquement "client" qui gère l'ensemble des fonctionnalités, avec les verrouillages impératifs sous forme de sémaphores, tout en veillant à l'ensemble des demandes et messages en cours de la part de tous les clients.
C'est un problème de conception au départ, qui doit être bien pensé et rigoureusement défini. Ensuite, c'est de la technique de programmation. Mais comme je l'ai dit, la vrai difficulté est au niveau de la conception, de l'analyse de la résolution des problèmes de simultanéité des transactions, à transformer en opérations sérialisées.
Bonne chance ! Je suivrai cela avec grand intérêt !
EDIT
Quelques réflexions au sujet du chat: - il serait intéressant que le mémo du bas soit remplacé par un objet list (qui du coup est automatiquement non modifiable) - chaque "client" aurait son propre fichier sur le FTP, dans lequel il dépose son message - sur le FTP, il y aurait un fichier "trace" contenant la fusion, chronologique, de tous mes messages. Chaque client ajoute donc son message à la fin de cette liste, en mettant son pseudo, la date et l'heure devant la première ligne du message - chaque client recharge automatiquement cette liste fusionnée pour l'afficher dans l'objet list remplaçant le mémo du bas
Et encore une autre remarque: ce genre de synchronisations et gestion de données est sur le principe identique à ce que tu devras faire pour un jeu en réseau: sérialiser les actions dans un fichier "trace" et reproduire sur le terrain de jeu de chaque client les actions décrites dans la "trace". Il n'y a pas de différence de principe ! | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Tests de KGF.dll Mer 10 Juin 2015 - 10:23 | |
| Bonjour jimx78, Sacré challenge, car essayer de faire du partage de ressource via ftp... Je ne vois pas comment tu vas bien pouvoir faire le verrouillage (même avec des sémaphores : normalement, c'est le serveur et uniquement lui, qui doit gérer le partage) Sinon, j'ai un message d'erreur lors du lancement de ton programme -> ligne 98 : "impossible to load the file" Lors du 1er lancement, j'ai eu droit à un gros plantage. Après téléchargement de la derniere dll de Klaus, plus de plantage. -> Je te conseille de tester la version de KGF en début de ton programme. De même: essaye de définir un répertoire temporaire de tes fichiers (pour éviter de pourrir le disque dur avec des data(local).txt Surtout que le répertoire par défaut lors du lancement de Panoramic est assez folklorique. . Voila, bonne chance dans ton projet ! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Tests de KGF.dll Mer 10 Juin 2015 - 11:53 | |
| Tuto sur les sémaphores La gestion des sémaphores, c'est autant un problème qu'une solution. La notion de sémaphore décrit une technique de programmation plutôt qu'un élément concret, comme une variable ou un objet. Ici, le contexte imposé est un site internet accessible par FTP, ce qui se traduit par un répertoire "virtuel" localisé sur un serveur distant. Ce répertoire est accessible simultanément par un nombre non limité de clients. Je dis "simultanément", mais la vraie simultanéité en informatique n'existe pas. Au final, tout revient à une sérialisation via une des multiples techniques de gestion de file d'attente. Ceci est fait par le serveur, et parfaitement transparent pour le client qui a l'impression d'avoir un accès unique, exclusif et immédiat au dossier FTP.Etant donné qu'on ne peut pas influencer le serveur, tout le problème revient à définir un mécanisme sûr pour réserver tout ou partie du contenu du dossier FTP, pour un client donné. Il ne sert à rien de tester l'existence d'un fichier et d'agir selon son existence ou absence, car entre le test et ne serait-ce que le début de l'action, un autre client peut avoir effectué le même test et croire avoir les mêmes droits d'accès. Il faut trouver un mécanisme qui en une seule action, donne le droit ou non d'effectuer certaines tâches. Et c'est là que la technique des sémaphores intervient. Dans le cas le plus simple (le plus brutal, le plus bloquant), on va définir un sémaphore qui donne un droit d'accès total et exclusif, à l'ensemble du FTP. Et tant que le sémaphore n'est pas libéré, aucun autre client n'a le droit d'accès. Je propose d'utiliser la présence d'un fichier spécifique comme sémaphore. Ce fichier, pour les besoins de ce tuto, un fichier nommé FTP_disponible.txt. Peu importe son contenu, il peut même être vide. Seul compte son nom. Donc, au départ, dans le dossier FTP, un fichier nommé FTP_disponible.txt doit exister. Maintenant, si un client veut utiliser le FTP, il faut qu'il en fasse la demande, et ne peut procéder à ses travaux que si la demande est acceptée. Et il fait la demande en renommant le fichier sémaphore vers un autre nom, par exemple FTP_pris_par_xxx.txt, avec xxx étant le pseudo du client. Ainsi, à chaque instant, on pourra voir qui est en train d'agir sur le FTP. Si le renommage réussit, ceci veut dire que le fichier FTP_disponible.txt existait et que le FTP est maintenant réservé pour ce client. Si le renommage échoue, ceci veut dire que le fichier FTP_disponible.txt n'existait pas, et que donc le FTP est occupé par un autre client. Conséquence: petite attente à programmer, avant de relancer la demande. Lorsqu'un client a fini son travail avec le FTP, il finit par renommer FTP_pris_par_xxx.txt en FTP_disponible.txt, ce qui immédiatement libère le FTP pour d'autres clients. Seul problème: si un client ayant réservé le FTP se "plante", le FTP est définitivement bloqué. Il faut donc réaliser un programme spécial "maître" qui peut libérer le FTP en renommant le fichier FTP_pris_par_xxx.txt en FTP_disponible.txt. Voilà pour le principe. Techniquement simple, cette solution permet d'utiliser un FTP en partage simultané. Bien sûr, on peut étendre cette technique à plusieurs sémaphores: FTP_disponible.txt - accès total exlusif FTP_section_1_disponible.txt - accès à un certain sous-ensemble des fichiers ... | |
| | | jimx78
Nombre de messages : 241 Age : 33 Localisation : Yvelines Date d'inscription : 24/05/2010
| Sujet: Re: Tests de KGF.dll Mer 10 Juin 2015 - 13:17 | |
| Salut Nardo26 et klaus, Au plus rapide des deux : Comment tester la version de KGF dans panoramic, si je sais c'est quel version une condition if version_KGF < 1.0 then message "telecharge la derniere version de KGF" @ tous: Comment changer le répertoire courent de panoramic dans son dossier racine ? Dir_change "" ne fonctionne pas dans mon cas. @nardo26 ou klaus Comment ferait tu un répertoire ou fichier temporaire et comment le supprimer apres utilisation, ou redemarage de l'ordi ? @klaus Le probleme que tu évoque à propot de si le programme plante et ne libère pas la place, j'ai une solution tres simple, il suffit de tester la connexion de celuis qui à reserver le fichier toutes les 5 secondes par exemple, si celui qui a reserver le fichizr n'a pas de signe de vie depuis > a 5 secondes par exemple, on peux remettre le fichier en disponible. J'ai fait des tests et pour le moment j'ai pas reussi a faire crache le ftp sans semaphore. Dans quel cas il y a un refus svp ? Si un programme enregistre dans un fichizr ftp alors qu'un autre veux le copier en Meme temps par exemple ? Car la façons qu'est programmer mon ftp, il ne lis jamais le contenue du fichier, il essai juste de le coller en local pour enfin l'ouvrir... J'ai jamais le cas d'avoir 2 fichier en local qui sont utiliser en ecriture et en lecture par exemple. Au pire des cas, je peux passer par un logiciel serveur, mais le problème c'est que la transmission des données est plus long. Panoramic>FTP>Panoramic_serveur>FTP>retour panoramic C'est plus long que Panoramic > FTP > retour panoramic Pour klaus enfin : pour pouvoir différencier plusieurs programme panoramic sur le FTP j'ai pluSieurs solutions : 1- cree un nombre aleatoire, si il existe deja, prend en un autre, ce sera un numéro provisoir / connexion 2- par system de compte : nom d'utilisateur unique enregistrer avec mot de passe 3- avec l'ip de l'ordinateur mais le logiciel ce lancera qu'une fois par ordi et c'est propore comme technique 4- proposez | |
| | | Contenu sponsorisé
| Sujet: Re: Tests de KGF.dll | |
| |
| | | | Tests de KGF.dll | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |