TServerSocket & max. Verbindungen



  • Ich habe einen Server mit TserverSocket und ein Client mit TClientSoket erstellt.
    Auserdem habe ich bei der Serveranwendung eine Klasse zu Userverwaltung geschrieben. Jetzt habe ich das Problem, das ich die Verbindungen zum Server auf max. 4 Beschränken möchte. Also habe ich nach nehm Ereignis gesucht was man bekommt, wenn sich vresucht ein Client einzulocken um den dann gleich abzuweisen. HAb da aber nix gefunden. Momentan nutzte ich OnActivate und überprüfe dann ob durch die neue Verbindung die max. Userzahl 4 überschreitet und wenn ja schliese ich die einfach wieder.
    Jetzt wollt ich nur wissen, obs nicht doch so geht wie ich erst wollte, also das man die Verbindung erst gar net zulässt?

    Ausserdem verstehe ich nicht ganz für was OnListen() Ereignis da ist. Habs bestimmt schon 5 mal oder mehr gelesen aber ich verstehs einfach nicht.



  • Original erstellt von Bigwill:
    Also habe ich nach nehm Ereignis gesucht was man bekommt, wenn sich vresucht ein Client einzulocken um den dann gleich abzuweisen. HAb da aber nix gefunden.

    Hast du was am Auge? 😉
    Oder was passt dir an OnClientConnect nicht?



  • Das verstehe ich aber nicht. OnClientConnect tritt laut Hilfe ja erst nach On accept auf. Momentan tue ich die Verbinung ja im On Accept schon wieder closen , also früher - aber eine verbindung in irgendeiner weise muss da ja schon bestehen und die wollte ich erst gar nicht zustande kommen lassen.

    Vielleicht vertsehe ich auch das Protokoll nicht genug.
    Ich hab mir das so vorgestellt das der Client an dern Server ne Nachricht schickt das er gern connecten möchte (in welcher Form auch immer) und dieser dann Quasie die Erlaubnis zurücksendet. Und da wollte ich halt an der Stelle zurücksenden das ich das nicht will. Aber da ich ja in OnAccept bereits daten verschicken kann existiert ja dort bereits eine Verbindung und wenn OnClientConnect laut Hilfe erst danach auftritt dann dort ja logischerweise auch. Also kann ich das so managen das ich die von vornerein verhindere oder wird das so gemacht wie ichs bereits mache?

    Wenn ich mich irgendwie umständlich Ausdrücke sagts ruhig, bin selber net richtig glücklich damit, weiß aber net wirklich wie ichs anders sagen soll.

    P.S.
    Mr ist gerade eingefallen wie ichs besser beschreiben kann.
    On ACcept (nutze ich jetzt) tritt auf sobald ein Client ein verbindung zum Server aufgebaut hat (sagt ja auch der NAme). Ich würde dann also etwas in der Art OnBeforeAccept suchen , um dort zu sagen "nein danke keine Verbindung aufbauen lassen

    [ Dieser Beitrag wurde am 15.05.2003 um 23:25 Uhr von Bigwill editiert. ]



  • Ob nun OnAccept oder OnClientConnect, bei beiden bekommst du den Socket übergeben, über den die aktuelle Verbindung läuft. Und TCustomWinSocket hat doch so interessante Methoden wie Disconnect ...



  • Naja also dann doch so wies jetzt schon ist. Im moment disconnecte ich den socket in OnAccept wenn er über meinenm count von 4 liegt. Dadurch sind es aber logischerweise mal kurz 5. Dann lass ich das halt so. Nur noch schöner wäre es eben gewesen, wenn ich hätte verhindern können das die Connection überhaupt zustande kommt. Und das geht bestimmt auch irgendwie.


Anmelden zum Antworten