[R] Limites du TCP.

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Kinsuke
Niveau 1
Niveau 1
Messages : 11
Enregistré le : lun. 14 mars 2011 18:20
Status : Hors ligne

[R] Limites du TCP.

#1

Message par Kinsuke »

Bonsoir, j'aimerais comprendre pourquoi lorsque je lance les scriptes suivants la fonction permettant d'afficher la liste des fichiers ne fonctionne pas quand la liste est trop volumineuse. (J'ai remarqué qu'après avoir changé la valeur 4096 par une valeur plus élevé le script fonctionnait de manière aléatoire).
► Afficher le texteServeur
► Afficher le texteClient

J'ai réutilisé le script de que Tlem m'avait donné pour la base du serveur (il fonctionne j'ai testé).
Modifié en dernier par Kinsuke le jeu. 17 mars 2011 18:18, modifié 3 fois.
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2130
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Limites du TCP.

#2

Message par TommyDDR »

"ne fonctionne pas" -> je n'arrive pas à avoir ce que je veux.

En faite, quand vous envoyez votre grosse liste de fichiers, celle-ci est découpé en plusieurs bouts (de 4096 surement) l'astuce est de créer un buffer et de mettre une chaine de caractère spéciale à la fin de votre liste (exemple : "FiN$De$Trame") et tant que vous n'avez pas cette chaine, vous faites un

$Buffer &= TCPRecv()

de cette manière, votre buffer contiendra toute votre liste.
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Kinsuke
Niveau 1
Niveau 1
Messages : 11
Enregistré le : lun. 14 mars 2011 18:20
Status : Hors ligne

Re: [..] Limites du TCP.

#3

Message par Kinsuke »

Merci d'avoir répondu mais je ne comprend pas ce que vous voulez dire. (qu'est-ce qu'un buffer ?)
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..] Limites du TCP.

#4

Message par Iste »

Remplacez

Code : Tout sélectionner

Local $Data = TCPRecv($Socket_receptrice, 4096)
par

Code : Tout sélectionner

Local $recv, $Data
Do
    $recv  = TCPRecv($Socket_receptrice, 4096)
    $Data &= $recv
Until $recv = ""
le problème est que TCPRecv() ne prend que les 4096 1er caractère..
Je vous laisse lire la doc pour plus d'info.
Signez ici
Kinsuke
Niveau 1
Niveau 1
Messages : 11
Enregistré le : lun. 14 mars 2011 18:20
Status : Hors ligne

Re: [..] Limites du TCP.

#5

Message par Kinsuke »

Merci , j'ai compris la théorie et j'ai remarqué que ça fonctionne sur des listes plus conséquentes mais sur certaines ça fonctionne de manière aléatoire ( à peu près 1 fois sur 5).

EDIT: J'ai trouvé une alternative. Etant donné que le script doit permettre de se balader à travers les dossiers/fichiers il est plus judicieux de n'afficher que les dossiers/fichiers et non tous les sous-dossier et tout les fichiers.(A la manière du terminale de Linux)

Enfin bref je passe en résolue car les liste ne seront jamais aussi grade avec cette méthode.
Répondre