![]() |
Client disconnecten (als Server)
moin,
ich schreibe gerade einen ircd, diesem muss man eine mail(warum auch immer) übergeben damit man auch akzeptiert wird, ansonsten sollte man disconnected werden... ich habe das ganze so gemacht:
Delphi-Quellcode:
wenn ich nun mit mirc darauf connecte funktioniert es manchmal wie es soll und manchmal auch nicht...
if ConArray[ConArrayIdx].email = '' then
begin AClient.SendText(Format('ERROR :Closing Link: %s[%s] (email needed to connect!)', [ConArray[ConArrayIdx].nick, AClient.RemoteHost]) + #13#10); // Nachricht senden MeinServer.Socket.Disconnect(AClient.SocketHandle); // Client disconnecten FreeUserData(ConArrayIdx); // Den User mit samt den Daten aus dem ConnectionArray löschen exit; end; So sieht es aus wenn alles richtig verlaufen ist: Zitat:
Zitat:
Zitat:
also muss der fehler da in meinen 4 zeilen sein... nur wo? |
Re: Client disconnecten (als Server)
Moin,
das Problem an der Sache ist, dass eine Serverseitge Verbindungsunterbrechung genau genommen beim Client nicht sauber durchgeführt wird. Es nicht so, dass dem Client gesagt wird: "Hey, sofort die Verbindung unterbrechen!" oder "Die Verbindung wird jetzt unterbrochen!", sondern sie wird einfach gekappt und fertig. Das wird dann durch eine Exception beim Client angefangen. Deshalb wird für diesen Fall auch kein OnDisconnected-Event beim Client aufgerufen, sondern nur dann, wenn die Verbindung client-seitig beendet wird. Aber wenn vorher eine Nachricht geschickt wurde, ist nicht sicher, dass die Nachricht auch vor der Verbindungstrennung beim Client ankommt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz