![]() |
Re: Server disconnectet Client
:wall:
oh, ich dachte das kommt in den allgemeinen public ! sorry ! :wall: :wall: nochmal vielen dank für deine hilfe ! :wink: wenn ich mein programm dann veröffentliche (natürlich in der dp) werde ich dich dankend erwähnen ;) |
Re: Server disconnectet Client
Moin!
Zitat:
Zitat:
MfG Muetze1 |
Re: Server disconnectet Client
Zitat:
Zitat:
|
Re: Server disconnectet Client
Moin!
Zitat:
MfG Muetze1 |
Re: Server disconnectet Client
:gruebel:
wenn du bei delphi ein neues formular erstellst, steht in der "leeren" Unit bereits ein type !? [ot]was nu mit deinem namen? wieso nicht ? [/ot] |
Re: Server disconnectet Client
Hi,
ich hab mir deinen Source jetzt ma angeguckt, bin an der Umsetzung aber gescheitert. Ich hab genau deinen Source genommen, hat aber nicht funktioniert, d.h. die ListBox blieb ganz leer, weder IP noch Host wurde angezeigt. Aus lauter Programmierfrust ( :wall: ) hab ich nochma drüber nachgedacht und bin auf folgendes gekommen:
Code:
Achso beim Clienten steht dann logischerweise:
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket); var ltemp :string; begin edit10.text := 'User eingeloggt: ' + IntToStr(ServerSocket1.Socket.ActiveConnections); nick := Socket.ReceiveText; nick1 := xorstring(nick, ''); memo1.lines.Add(nick1); nick1:=Copy(nick1, 1, 6); lTemp := Socket.RemoteHost + ' ' + Socket.RemoteAddress + ' ' + nick1; ListBox1.Items.AddObject(lTemp, Socket); end;
Code:
Das funktioniert aber nicht immer, nur manchmal, d.h. es macht was es will !!!!
procedure ClientSocket1ClientConnect;
begin ClientSocket1.socket.sendtext(nachricht); Meistens geht es beim zweiten Mal, also wenn der Client die Verbindung trennt und erneut herstellt dann geht es. Wieso das ? |
Re: Server disconnectet Client
Moin!
Debuggen kann ich dazu nur sagen. Und wenn du den Fehler durch das debuggen nicht findest (jeder muss das mal lernen), dann kannst du uns den Quellcode hier hinten anhängen und mal nachfragen ob es sonst einer von uns tut. Bei dem oben geposteten Code sehe ich keinen grundlegenden Fehler, daher liegt es wahrscheinlich am Zusammenspiel. MfG Muetze1 |
Re: Server disconnectet Client
Ich glaube das hängt irgendwie damit zusammen, dass im OnClientRead der Server die Nachricht ja verarbeiten will, dies dann aber im ClientConnect ja schon getan wurde !
Kann das sein das die beiden sich da gegenseitig in die Quere kommen ? |
Re: Server disconnectet Client
Moin!
OnClientConnect: Wir einmalig beim Verbindungsaufbau aufgerufen. Zu diesem Zeitpunkt wurde der Aufbau der Verbindung mit dem Client abgeschlossen und die Verbindung steht. Es liegen noch keine Daten an, die man empfangen könnte. Wenn man in diesem Ereignis ein ReceiveText o.ä. aufruft, dann ist es mehr als Zufall, wenn dort was zu empfangen wäre. OnClientRead: Dieses Ereignis kann mehrfach aufgerufen werden. Es wird immer ausgelöst, wenn Daten vom Client empfangen wurden und im Buffer abgelegt wurden. Diese können dann im OnClientRead ausgelesen werden. Mit dem Auslesen werden diese Daten auch gleich aus dem Buffer entfernt. Die zu empfangenen Daten können in unterschiedliche Teile zerstückelt sein, es gibt keine Garantie das sie in einem Stück bzw. genauso unterteilt ankommen wie sie losgeschickt wurden. Es kann also vorkommen das 2 nacheinander mit SendText losgeschickte Texte mit einem einzigen ReceiveText empfangen werden. Genausogut kann es mehrere OnClientRead und ReceiveText benötigen um einen Text zu empfangen der auf der Clientseite mit einem einzigen SendText verschickt wurde. Ein Auslesen des Buffers durch ReceiveBuf() oder ReceiveText sollte immer nur im OnClientRead statt finden. Nein, es kann nicht sein, das diese sich behackeln - wenn man beachtet das ein ReceiveBuf()/-Text() nur im OnClientRead stattfinden darf. MfG Muetze1 |
Re: Server disconnectet Client
Aber beim Client-Programm schick ich ja auch im ClientConnect eine Nachricht zum Server.
Die soll ja dann halt im Server auch bei ClientConnect eben lesen. Vielleicht gehts nur nicht weils zu schnell ist, d.h. vielleicht sollte man beim ClientConnect noch ein delay oder sowas einbauen ?? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:05 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