Bonjour à tous.
Je débute en com sur TCP/IP et je suis en cours de développement d'un client pour une liaison avec un automate Schneider (Serveur Carte ETY5103) en modbus IP.
Je sèche malgré diverses recherches et tests, je viens donc vous solliciter.
Mon ou mes problèmes se situent sur l'utilisation des composants socket.
J'ai donc testé deux méthodes avec pour chacune les soucis suivant:
Avec TClientSocket:
Les échanges fonctionnent mais lorsque le serveur est sur le réseau Ethernet local, la connexion et les échanges sont beaucoup plus lent qu'avec le serveur distant sur internet!!
Avec Indy TidTCPClient:
Les connexions sont rapide dans les deux cas (Local ou distant), mais je ne parviens pas à récupérer correctement la réponse du serveur dans la procédure ci-dessous, qui n'est pas toujours appelée!!
Merci d'avance de votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 procedure TForm1.Client1Work(Sender: TObject; AWorkMode: TWorkMode; const AWorkCount: Integer); var str: string; begin str := Client1.IOHandler.ReadLn; Trame_rx := str; conv_trame_rx; ListBox1.Items.Insert(0, 'RX '+Trame_rx_aff); end;
Thierry
Partager