Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi servsersocket problem mit zuweißung (https://www.delphipraxis.net/59586-servsersocket-problem-mit-zuweissung.html)

G G 25. Dez 2005 10:10


servsersocket problem mit zuweißung
 
hi, folgendes problem ich weiß von einem client sein sockethandle, aber nun möchste ich dadurch auf seine connectionnummer (ServerSocket1.Socket.Connections[I]) schließen.

aber wie geht dies, ich habe probiert dies so zu lösen, aber dies ist ja nur eine read property

Delphi-Quellcode:
serversocket1.Socket.SocketHandle := handles;
das handle selebr habe ich auf folgendem code gewonnen

[delphi]

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);

.....

handles := socket.SocketHandle;


sind dies dann beides die selebn handles oder mach cih hier wa grundliegendes falsch, und wnen alles stimmt, wie kommte ich dann auf dieses I von den connections um zu bestimmen wer wer ist?

vielen dank

Muetze1 25. Dez 2005 17:34

Re: servsersocket problem mit zuweißung
 
Moin!

Wozu brauchst du den Index in dem Connections[] Array überhaupt???

Grundlegend ist der Eintrag in dem Connections[] Array genau der gleiche wie du ihn auch in der von dir geposteten Methode als Socket übergeben bekommst. Daher kannst du deine Aktion doch auch direkt auf diesen Socket ausführen - es ist die gleiche Instanz. Daher grundlegend die Frage: Was willst du mit diesem Index?

Eine Verwaltung anhand des Index in dem Connections-Array aufzubauen wäre mehr als schlecht, schliesslich rutschen die Sockets in dem Array nach, wenn eine Verbindung in der Liste beendet/geschlossen wird.

Also, wozu brauchst du den Index?

MfG
Muetze1

Zacherl 25. Dez 2005 18:22

Re: servsersocket problem mit zuweißung
 
Geh einfach in einer Schleife alle Connections durch und prüfe, ob das Handle übereinstimmt. Dann gibt dir die Zählervariable den Index zurück.

Florian

Muetze1 25. Dez 2005 20:35

Re: servsersocket problem mit zuweißung
 
Zitat:

Zitat von Florian Bernd
Geh einfach in einer Schleife alle Connections durch und prüfe, ob das Handle übereinstimmt. Dann gibt dir die Zählervariable den Index zurück.

Florian

Wozu das Handle? Wie ich schon geschrieben habe, ist die Instanz ein und die selbe, daher muss er nicht das Handle vergleichen sondern direkt die Instanz. Und deine Antwort beantwortet zwar direkt seine Frage, aber ich glaube er geht den falschen Weg, weil dieser Index mehr als unsicher ist. Er identifiziert eine Verbindung niemals eindeutig wie es z.B: die Instanz der Verbindung kann. Wenn man das auch ordentlich umsetzt, interessiert einen das Connections[] Array überhaupt nicht mehr in Bezug auf eine spezielle Verbindung die einem in einem Event von der Komponente übergeben wurde, da man an der Verbindung alles direkt mit der übergebenen Instanz erledigen kann.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:31 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