Autor Beitrag
BiBi
Hält's aus hier
Beiträge: 7

XP Home, WIN2000
D7 Prof
BeitragVerfasst: Di 14.01.03 01:35 
Hallo

ich bin neu in diesem Forum und habe ein Problem mit TClientServer.Socket.ActiveConnections

Ich habe einen Server und einen Client. Im Server zeige ich in einem Label die derzeit verbundenen Clients an mit
ausblenden Quelltext
1:
Label1.Caption := IntToStr (TClientServer.Socket.ActiveConnections);					

In unregelmässigen Zeitabständen von ca 1 bis 10 Sekunden bekomme ich als Anzeige, dass 2 Clients verbunden sind obwohl nur 1 Client läuft. Auch wenn ich mehrere Clients starte, erscheint immer wieder 1 Client mehr in der Anzeige als tatsächlich verbunden sind.

Habt ihr schon mal so einen Fehler gehabt und wenn ja, wie habt ihr ihn abgestellt.

Voraus vielen Dank.

BiBi
BungeeBug
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 901



BeitragVerfasst: Di 14.01.03 13:52 
also wenn ich das richtig interprtiere dann heisst activeconnection wirklich nur activeconnection was wiederum heisst das nur aktive Verbindungen gezält werden und das sind nun mal nur die die gerade Daten senden oder empfangen ... mein Tip (nein nicht MirakelWip) schick doch beim Verbinden einfach nen bestinmmten String an den Server der dann verursacht das der Server ne Variable eins weiter zählt ...

MfG BungeeBug
Sorry für die komische Ausdrucksweise :)
BiBi Threadstarter
Hält's aus hier
Beiträge: 7

XP Home, WIN2000
D7 Prof
BeitragVerfasst: Di 14.01.03 17:18 
Servus,

danke für deinen Tip. Jedoch vermute ich den Fehler eher an anderer Stelle, die ich jedoch nicht kenne. Größtenteils liefert die Anzeige ActiveConnections die richtige Anzahl an Verbindungen. Nur ab und zu erscheint 1 Verbindung zusätzlich in der Anzeige. Das kann aber nur von einem anderen Verbindungsaufbau herkommen (glaube ich). Es läuft aber definitiv nur 1 Client. Könnte es von der 2.ten Netzwerkkarte kommen? Hat eigentlich eine andere IP.
Wenn ich versuche Daten vom Server an den Client zu senden über
Connections[Index] erhalte ich am Server Fehlermeldungen, weil die zusätzliche Verbindung nicht existiert.

tschau
BiBi
patmann2001
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 201

Windows 7 Prof.
Delphi XE2
BeitragVerfasst: Di 14.01.03 19:52 
Hallo
Eigentlich solltest Du eine Null bekommen wenn Du diesen Quellcode benutzt:
ausblenden Quelltext
1:
 Label1.Caption := IntToStr (TClientServer.Socket.ActiveConnections);					

Denn ActiveConnections fängt bei Null an zu zählen.
Mach doch mal in deinem Server ein RichEdit auf und füge folgende Zeile in das Ereigniss OnClientConnect
ausblenden Quelltext
1:
richedit1.items.add('Ein Client hat sich verbunden');					

Dann sollte dieser Text nur einmal Auftauchen wenn sich nur ein Client verbindet. Ansonsten taucht dieser Text bei jeder weiteren Verbindung auf.

cu Patmann
BiBi Threadstarter
Hält's aus hier
Beiträge: 7

XP Home, WIN2000
D7 Prof
BeitragVerfasst: Di 14.01.03 23:42 
Hallo,

vielen Dank für den Tip, werde ich gleich mal probieren.

tschau
BiBi
BiBi Threadstarter
Hält's aus hier
Beiträge: 7

XP Home, WIN2000
D7 Prof
BeitragVerfasst: Mi 15.01.03 00:05 
@patmann2001

Hallo und vielen Dank für den Tip. Habe den Fehler gefunden. Habe leider beim Client übersehen, dass ich kontrolliere ob ClientSocket1.Active = True
ist, bevor ich beim inaktiven Zustand den Client automatisch durch einen Timer starte.

Gruß
BiBi