Autor Beitrag
hanspeter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 44

Windows

BeitragVerfasst: Do 22.07.04 07:26 
Hallo,

ich setze erstmalig die Client und Server Komponenten von Indy ein. Die Verbindung klappte auch auf Anhieb und problemlos.
Da ich mit diesen Komponenten noch nicht gearbeitet habe, hätte ich ein paar strategische Fragen.

Die Aufgabe 5 Rechner sammeln manuell Daten und liefern diese bei einem Leitrechner ab.
Der Leitrechner bereitet die Daten auf und speichert diese in einer SQL-Datenbank ab.
Das Datenaufkommen ist eher gering und nicht zeitkritisch.
Aller 3 bis 6 sec´wird ein Datensatz von max. 10 ASCII-Zeichen übertragen.

Nun meine Fragen :

1. Im Moment öffne ich die Verbindung und schließe diese nach der Übertragung wieder.
Ist es besser die Verbindung über die Dauer der Sitzung offenzuhalten?

2. Spendiere ich jedem der 5 Rechner einen eigenen Server + ein eigenen Port oder lasse ich alles über einen Port laufen. (Der Datensatz enthält bereits die Rechnerkennung)

3. Der Leitrechner quitiert den Empfang und soll an die 5 Datenerfassungsrechner Kommandos absetzen.
Bei einer offenen Verbindung könnte ja der Server Daten senden.
Ist es besser auf jedem Client einen Server zu verwenden um Kommandos und Quittungen zu senden.

4. Bei einer getrennten Verbindung für die Kommandosteuerung, kann diese über den gleichen
Port laufen oder sollte ein anderer Port verwendet werden.

Und zum Schluß kann wer ein Tool empfehlen, was belegte Ports anzeigt?

Im Voraus vielen Dank

Peter
DaRkFiRe
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 526

WinXP Home & Professional
C, C++, Delphi
BeitragVerfasst: Do 22.07.04 14:09 
Wieviele Ports und Server Du einsetzt und ob Du die Verbindung offen halten willst, kommt letzten Endes darauf an, mit welchem Trafficaufkommen und Clientanzahl Du rechnest, bzw. wie hoch der Rechenaufwand am Server für 1 Client ist.

_________________
Lang ist der Weg durch Lehren - kurz und wirksam durch Beispiele! Seneca
DataCool
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 112



BeitragVerfasst: Mi 28.07.04 11:59 
Hi HansPeter,

anhand Deiner jetzigen Beschreibung würde ich sagen :

zu 1. Halt die Verbindung immer offen

zu 2. Warum brauchen die Clients auch einen eigenen Server ? Das ist doch absolut überflüssig, die senden doch nur DAten zum Server.

zu 3. Ich würde Dir empfehlen den CommandHandler des IdTCPServer zu benutzen, da kannst Du fertige Kommandos einfach per Hand im Objekt-Inspektor einstellen und auch gleich die entsprechende Antworten festlegen, bzw. diese dynamisch erzeugen.

zu 4. Wenn Du es so machst wie ich beschrieben habe brauchst Du keine offene Ports bei den Clients und beim Server nur einen offenen Port.

Gruß Data

_________________
DataCool