AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke TIdTCPClient - parallel Verbindungen aufbauen ?

TIdTCPClient - parallel Verbindungen aufbauen ?

Ein Thema von myicq · begonnen am 10. Jan 2017 · letzter Beitrag vom 10. Jan 2017
Antwort Antwort
myicq

Registriert seit: 5. Jan 2016
70 Beiträge
 
Delphi 6 Professional
 
#1

TIdTCPClient - parallel Verbindungen aufbauen ?

  Alt 10. Jan 2017, 12:58
Hallo,

ich habe eine kleine App enwickelt was Anwender erlaubt Industriecontroller zu bedienen. Max 16 Stck.
Kommunikation geht, läuft über TIdTCPClient. Und soweit auch kein Problem.

Aber.. bei 16 Controller muss no 16 zzt abwarten bis 1..15 ausgeführt ist. Was etwa 1-2 Min dauert.

Deshalb meine Frage: wie mache ich das "parallel" ? Ich vermute mit TThreads. Eine kurze Beispiel währe genug.

Was ich jetzt habe.. dieses Procedure ist über eine Loop (i = 1..16) ausgeführt.

Delphi-Quellcode:
{
  --------------
  Action loop for controller
  --------------
 
  This is run up to 16 times..

}

procedure TpopForm.do_some_action(printerid : integer);
const
   port: Integer = 3000;
var
   TCPClient: TIdTCPClient;
   s : string;
begin
     try
         try
            TCPClient := TIdTCPClient.Create(nil);
            TCPClient.Port := port;
            TCPClient.Host := controllers[printerid].IP;      // IPs stored in an array
            TCPClient.UseNagle:=False;
            TCPClient.RecvBufferSize := 1024;
            TCPClient.SendBufferSize := 1024;
            TCPClient.Connect;

            // NOW SEND THE STRING TO RESET INK LEVEL
            TCPClient.Write('MYCOMMAND#'); // commands and responses terminate by "#"
            repeat
              s := TCPClient.ReadLn('#');
            until LeftStr(s, 3) = 'RES';            // final response starts with "RES"

         except
         end;
       
     finally
       TCPClient.Disconnect;
       tcpclient.Free;

     end;
end;
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#2

AW: TIdTCPClient - parallel Verbindungen aufbauen ?

  Alt 10. Jan 2017, 13:12
Kleine Korrekturen:

Delphi-Quellcode:
procedure TpopForm.do_some_action(printerid : integer);
const
   port: Integer = 3000;
var
   TCPClient: TIdTCPClient;
   s : string;
begin
   TCPClient := TIdTCPClient.Create; // vor try, ohne (nil) möglich
   try
     TCPClient.Port := port;
     TCPClient.Host := controllers[printerid].IP; // IPs stored in an array

     TCPClient.UseNagle := False;

     // TCPClient.RecvBufferSize := 1024; nicht notwendig
     // TCPClient.SendBufferSize := 1024; nicht notwendig

     TCPClient.Connect;

     TCPClient.Write('MYCOMMAND#');
     repeat
       s := TCPClient.ReadLn('#');
     until LeftStr(s, 3) = 'RES';

   finally
     // TCPClient.Disconnect; Free führt Disconnect aus
     TCPClient.Free;
   end;
end;
den leeren except Block habe ich mal dezent entfernt
Michael Justin
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#3

AW: TIdTCPClient - parallel Verbindungen aufbauen ?

  Alt 10. Jan 2017, 14:04
Zitat:
den leeren except Block habe ich mal dezent entfernt
...eher nicht, sondern ausgefüllt. Bei Kommunikation kann so einiges schief gehen...
  Mit Zitat antworten Zitat
myicq

Registriert seit: 5. Jan 2016
70 Beiträge
 
Delphi 6 Professional
 
#4

AW: TIdTCPClient - parallel Verbindungen aufbauen ?

  Alt 10. Jan 2017, 14:08
Ich danke für die Änderungen bzw Verbesserungen. Ich bin sicher es gibt in mein Programm mindestens 1024 davon Bin halt nur "amateur".

Aber, immer nocht nicht Parallel.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz