Accueil > Forum > > > > ClientSocketX Dynamique
ClientSocketX Dynamique
vendredi 22 juin 2007 à 19:56:15 |
ClientSocketX Dynamique

askil2000
|
Bonjour,
Je suis entrain de développer (just for the fun) un testeur de connexion Internet, celui-ci utilise 2 TClientSocket créé dynamiquement par un system de array en type record :
var TFunc: array of (un TClientSocket)
ensuite on a :
TFunc[I].Sock := TClientSocket.Create(mon form); TFunc[I].Sock.Name := 'MS' + IntToStr(I); TFunc[I].Sock.OnConnect := MSConnect; TFunc[I].Sock.OnRead := MSRead; TFunc[I].Sock.OnError := MSError; TFunc[I].Sock.Tag := I; TFunc[I].Sock.Host := Host; TFunc[I].Sock.Port := Port; TFunc[I].Sock.Open;
Sachant que MS est un TClientSocket sur mon form & que les Evénements OnConnect, OnRead et OnError sont bien là.
Maintenant ma question est un peu complexe, accrochez vous ...
Dans l'evénement OnConnect j'envois au server une variable aléatoire. Dans l'evénement OnRead je reçois l'information traité, mais seulement je ne sais pas quel
TFunc[I].Sock
a envoyé la variable qui a permis le traitement, car mon serveur ne peut me le révéler. Si quelqun a compris quelque chose à se que je viens de dire 
Merci @ vous ...
|
|
vendredi 22 juin 2007 à 22:40:44 |
Re : ClientSocketX Dynamique
|
vendredi 22 juin 2007 à 23:04:09 |
Re : ClientSocketX Dynamique

askil2000
|
Bonsoir WhiteHippo,
J'ai été voir la source que tu m'as proposé, cependant elle ne peut hélasse m'aider car mes sockets sont dynamiques et de plus je n'ai pas acces au serveur.
Je peux donner plus de précisions si toutefois quelqun ne comprenais pas la question.
Merci pour cette suggestion rapide et à bientôt.
|
|
vendredi 22 juin 2007 à 23:32:12 |
Re : ClientSocketX Dynamique
|
samedi 23 juin 2007 à 00:28:29 |
Re : ClientSocketX Dynamique

askil2000
|
Je suis toujours dessus, en effet tu as raison il existe les informations locales et distantes, mais elles ne me sont d'aucune utilité car j'ai l'adresse du server, et l'adresse des deux clients créé dynamiquement sont les mêmes. se que je cherche à faire ne se trouve pas dans les informations relative aux adresses ip mais bien dans l'information proprement dite. Quand on envois deux informations successivement par une boucle for par exemple on a :
for I := 1 to 100 do begin TFunc[I].Sock := TClientSocket.Create(mon form); TFunc[I].Sock.Name := 'MS' + IntToStr(I); TFunc[I].Sock.OnConnect := MSConnect; TFunc[I].Sock.OnRead := MSRead; TFunc[I].Sock.OnError := MSError; TFunc[I].Sock.Tag := I; TFunc[I].Sock.Host := Host; TFunc[I].Sock.Port := Port; TFunc[I].Sock.Open; end;
ensuite on a dans l'evénement OnConnect (soit MSConnect;) :
Socket.SendText(ChaineAvecMaVariable);
et dans le OnRead (soit MSRead;) :
if (J'aiUnMotQuiDitOk) then c'est bon;
les sockets sont bien envoyés dans l'ordre 1 to 100 mais dans la réception il y a un décalage (normal puisque c'est distant) on reçois donc les réponses dans le désordre.
J'aimerais donc différencier ou trouver un astuce pour dire que c'est ma variable qui est bien traité.
J'espère que c'est plus clair à présent merci ....
|
|
samedi 23 juin 2007 à 09:13:42 |
Re : ClientSocketX Dynamique

sylvunix
|
Bonjour,
Si j'ai bien compris, tous les évènements OnRead pointent sur une même méthode. Donc quand tu reçois une information, tu ne sais pas à quel socket elle est liée.
Pourquoi ne ferais-tu pas un programme multithread, un thread étant associé à un socket. La mise en oeuvre ne doit pas être trop compliquée et je pense que cela pourrais répondre à ton problème. A condition toutefois que je l'ai bien compris.
Sylvain
|
|
samedi 23 juin 2007 à 11:53:40 |
Re : ClientSocketX Dynamique

WhiteHippo
|
Réponse acceptée !
Pfff c'est dur dur en ce moment
Ton evenement OnRead dispose bien d'un sender !!! donc avec un TClientSocket(Sender).tag tu dois retrouver le tag du socket qui a généré l'evenement. Non ?
Cordialement. "L'imagination est plus importante que le savoir." Albert Einstein
|
|
samedi 23 juin 2007 à 12:02:40 |
Re : ClientSocketX Dynamique

askil2000
|
Bonjour sylvunix,
Tu as bien cerné mon problème en effet, tous les évènements pointent vers une même "méthode". Le multithread est peut être la solution, je vais reformer mon code afin de voir si il est possible de gérer individuellement les "méthodes".
En tout cas, je ne manquerai pas de confirmer ta réponse si toutefois elle correspond.
Merci @+
|
|
samedi 23 juin 2007 à 12:07:21 |
Re : ClientSocketX Dynamique

askil2000
|
Bonjour WhiteHippo,
Je me demandais justement comment utiliser ce fameux Tag ?
Thanks !
|
|
samedi 23 juin 2007 à 12:20:22 |
Re : ClientSocketX Dynamique

askil2000
|
WhiteHippo Win !
C'est nikel, heureusement que tu es là sinon j'aurais refais le prog en multithread 
Merci !
|
|
Cette discussion est classée dans : sock, tclientsocket, tfunc, onconnect, onread
Répondre à ce message
Sujets en rapport avec ce message
QQ1 aurrai le composant TClientSocket et TServerSocket [ par JPKalham ]
Car dans la version 7 de Delphi ils n'y sont pas !Merci !
Classe TClientSocket introuvable [ par Smeito79 ]
Bonjour,Je possede Delphi 7 et quand j'ouvre un fichier source que j'ai telecharger sur intrent(sur ce site) , delphi me met qu'il ne connait pas la c
TClientSocket et TServerSocket [ par MAsterC ]
Salut à tous...Je voudrai savoir où que je pourrai me procurer les composant TClientSocket et TServerSocket. Parce que moi j'ai Delphi 7 et je ne les
Content-Encoding: gzip et TClientSocket [ par Acness ]
Bonsoir à tous,Voila mon pb,Quand je reçois des données encodées en gzip avec le composant TClientSocket, celles-ci sont évidemment illisibles, quelqu
TClientSocket ou TNMStrm [ par norton ]
Bonjour,j'airai besoin d'un conseil je dévelope en ce moment un programme pour envoyer des fichier et les reçevoirs.Mais je sait pas quel composants i
Socket asynchrone avec TServerSocket/TClientSocket [ par txo ]
Bonjours, J'ai un probleme quand je tente de me connecter a mon serveur (TServerSocket) avec mon cliient (TClientSocket) sur un port proche de 2000 pa
Erreur avec TClientSocket [ par warezpsx ]
Salut à tous !Est-ce qu'il y a un moyen d'empêcher le message d'erreur d'un ClientSocket lorsqu'il ne parvient pas à se connecter ?En mettant la varia
Est-ce que un Tclientsocket peut recevoir une image de la part d'un Tserversocket??? [ par atupac1 ]
Mon programme client tourne est fait en delphi5 et doit envoyer une liste Tstringlist par socket á un autre programme Serveur qui tourne sous java. Ce
onclientwrite et tclientsocket [ par MoveX ]
jaimerais indiquer avec un tshape lorsque mon client envoie des donnees en changeant la couleur du tshape, un peu a la methode d une led de hd, commen
Utilisation de composant créée dynamiquement [ par taye78 ]
Bonjour,voici le code que j'ai écris pour créer 2 ClientSocket dynamiquement, ensuite je leur attribu quelques propriétés etc. Mais lorsque l'evenemen
Livres en rapport
|
Derniers Blogs
[SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|