[UDF] TCP Class (Le TCP facile!)

Partagez des fonctions et des UDF AutoIt.
Règles du forum
.
Répondre
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

[UDF] TCP Class (Le TCP facile!)

#1

Message par matwachich »

Mise à jour 1.1b (13/10/2011)
Correction d'un important bug dans le système de paramètres associés aux sockets de clients dans le serveur.
► Afficher le texteChange Log
UDF_TCPClass.rar
Corrigé.
(147.89 Kio) Téléchargé 556 fois
Mise à jour
Le client fonctionne désormais normalement.

Voir le fichier zip.

----------------------------------------------
Salut la compagnie!
Je me présente à vous avec un nouvel outil qui va, à mon avis, faciliter la vie de beaucoup!

D'abord, je tien à préciser que ce n'est pas un UDF comme les autre, car il est orienté objet (grâce à AutoItObject Lien Lien)

Il se présente sous forme de 2 Classes:
- _Class_TCPClient
- _Class_TCPServer

Les atouts sont:
- Données cryptées (Crypt.au3)
- Serveur multiclients
- Bufferisation des données géré en interne (même les grosses quantité de données peuvent être envoyées d'un coup, et elle seront reconstituées comme il se doit)
- Système de timeout
- Super facile et intuitif! (pour quoi à déjà fait de la POO, pour les autres, je suis sur que les exemples seront assez parlant)

Les exemples sont dans les fichiers eux même, c'est à dire que pour utiliser les classes dans vos script, il faudra commenté les exemples.

Il suffit de les lancer tout les 2 (l'ordre importe peut, car le client attend le serveur!) et de voir ce qui se passe dans la console du serveur:
- Il reçoit bien les données, d'abord 2 chaines de caractères, puis des données binaires représentant une capture d'écran prise et envoyé sous forme de chaîne binaire par le client, qui sera reconstitué par le serveur dans le dossier des scripts.

Bug? Suggestion? à vous les studios!
Modifié en dernier par matwachich le jeu. 13 oct. 2011 18:42, modifié 3 fois.
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [UDF] TCP Class (Le TCP facile!)

#2

Message par timmalos »

Je regarderai plus en detail, mais ca peut etre tres interessant d'utilier la POO pour ce genre de script TCP.
Kevzi
Niveau 4
Niveau 4
Messages : 78
Enregistré le : dim. 17 juil. 2011 12:36
Status : Hors ligne

Re: [UDF] TCP Class (Le TCP facile!)

#3

Message par Kevzi »

ça a l'air intéressant , surtout pour le script que je programme. Par contre j'ai pas trop compris l'exemple.
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [UDF] TCP Class (Le TCP facile!)

#4

Message par matwachich »

L'exemple se résume à:
- Le serveur se lance et attend une connexion
- Le client se lance, prend un Screen Shot, le stock sous forme de chaîne binaire, puis se connecte au serveur.
- Le client commence à envoyer des données, d'abord une chaîne "Je commence à envoyer!" puis un Int: 123, et enfin, il envoi la chaîne binaire représentant la capture d'écran.
- Le serveur reçoit ces données, et les trie, si la donné reçu est petite, il se contente de l'afficher dans la console (Valable pour la chaîne et le Int), si par contre les données sont volumineuses, alors il les stock dans la variable $filebuffer.
- Quand le client à fini d'envoyer, il envoi "TERMINE", le serveur ne recevra ce mot que quand il aura fini de recevoir le fichier (chaîne binaire), quand le serveur reçoit "TERMINE" il renvoi "TERMINE" au client, et le client se ferme.
- Cela a pour conséquence que le serveur perde la connexion du client, et alors, la fonction _lost est appelé, elle écris $filebuffer dans un fichier, et quitte le serveur.
PS: cette astuce de "TERMINE" c'est parce que le client fini d'envoyer le fichier avant que serveur ne finisse de recevoir! c'est tordu je sais, mais c'est comme ça. et si le client se ferme directement après avoir envoyer le binary string (la capture d'écran) alors la fonction _lost du serveur est appelé avant que la réception de la dite capture soit terminé, et le fichier qui sera écris (test.jpg) devient corrompu.

C'est à peut près ça! lol
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Kevzi
Niveau 4
Niveau 4
Messages : 78
Enregistré le : dim. 17 juil. 2011 12:36
Status : Hors ligne

Re: [UDF] TCP Class (Le TCP facile!)

#5

Message par Kevzi »

en fait les exemples ce sont les 2 fichiers ?
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [UDF] TCP Class (Le TCP facile!)

#6

Message par matwachich »

bah oui, les exemples sont intégrés aux UDFs, c'est pour ça que j'ai dit:
Les exemples sont dans les fichiers eux même, c'est à dire que pour utiliser les classes dans vos script, il faudra commenté les exemples.
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [UDF] TCP Class (Le TCP facile!)

#7

Message par matwachich »

ATTENTION
Cet UDF est encore très bugé! Surtout le client, le serveur, lui, ça va, mais le client est innutilisable pour recevoir des données du serveur, par contre il peut envoyer normalement, c'est pour ça que l'exemple marche bien, car le client n'y fait qu'envoyer.
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
RL77LUC
Niveau 5
Niveau 5
Messages : 173
Enregistré le : mar. 21 sept. 2010 16:54
Status : Hors ligne

Re: [UDF] TCP Class (Le TCP facile!)

#8

Message par RL77LUC »

Si la réception Serveur -> Client bugue, je reste avec les fonctions classiques, qui fonctionnent très bien.Le cryptage est une bonne idée ;).
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [UDF] TCP Class (Le TCP facile!)

#9

Message par matwachich »

Ca y est, c'est débugé! Et prêt à l'emploi! En plus, la doc est plus complète, et j'ai ajouté une fonction au serveur.

Voir le premier post, le zip est mis à jour.
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [UDF] TCP Class (Le TCP facile!)

#10

Message par matwachich »

Mise à jour, avec correction d'un gros bug, et modifications mineurs!
Voir en haut!
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Avatar du membre
matwachich
Membre émérite
Membre émérite
Messages : 986
Enregistré le : lun. 19 oct. 2009 04:04
Localisation : Algérie
Status : Hors ligne

Re: [UDF] TCP Class (Le TCP facile!)

#11

Message par matwachich »

Désolé aux personnes qui ont téléchargé l'archive d'hier, elle contenait la mauvaise version.
Je réupload avec la bonne.
Sortons VW du coté obscure! - La curiosité est un vilain défaut! Cliquez ici
Répondre