Page 1 sur 1

[UDF] TCP Class (Le TCP facile!)

Posté : jeu. 08 sept. 2011 21:59
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é 640 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!

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

Posté : ven. 09 sept. 2011 00:42
par timmalos
Je regarderai plus en detail, mais ca peut etre tres interessant d'utilier la POO pour ce genre de script TCP.

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

Posté : ven. 09 sept. 2011 04:25
par Kevzi
ça a l'air intéressant , surtout pour le script que je programme. Par contre j'ai pas trop compris l'exemple.

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

Posté : ven. 09 sept. 2011 15:27
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

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

Posté : ven. 09 sept. 2011 15:46
par Kevzi
en fait les exemples ce sont les 2 fichiers ?

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

Posté : ven. 09 sept. 2011 18:21
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.

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

Posté : sam. 10 sept. 2011 11:54
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.

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

Posté : sam. 10 sept. 2011 15:09
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 ;).

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

Posté : sam. 10 sept. 2011 18:58
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.

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

Posté : jeu. 13 oct. 2011 03:01
par matwachich
Mise à jour, avec correction d'un gros bug, et modifications mineurs!
Voir en haut!

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

Posté : jeu. 13 oct. 2011 18:39
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.