Gute Mitternacht, ich habe ein Programm geschrieben, indem ein SocketServer online geht und auf neue Verbindungen wartet.
Wenn er eine neue Verbindung bekommt, so kann man per EditFeld nachrichten an diesen Client schicken. Wenn ich jetzt mit meinem Client connecte, wird mir bei meinem Server eine Neue Verbindung + Ip-Adresse angezeigt. Möchte ich jetzt aber eine Nachricht verschicken, kommt eine Fehlermeldung, das keine Verbindung existiert. Mir aus unerklärlichen Gründen, beendet der Server immer die Verbindung oder es kommt garnicht zu einer vollkommenen Verbindung, den die Nachricht 'Neue Verbindung. (IP-ADRESSE)' lasse ich anzeigen bei dem OnConnect-Ereigniss des Servers. Wisst ihr wieso? Hier noch die Soucre vom Client und vom Server.
CLIENT
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TForm2.bConClick(Sender: TObject); begin Client.Open; end;
procedure TForm2.bSendClick(Sender: TObject); begin Client.Socket.SendText(eClient.Text); end;
procedure TForm2.ClientRead(Sender: TObject; Socket: TCustomWinSocket); begin ClientLog.Lines.Add(Socket.ReceiveText); |
SERVER
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| procedure TForm2.ServerClientConnect(Sender: TObject; Socket: TCustomWinSocket); begin Log.Lines.Add('Neue Verbindung. ('+Socket.RemoteAddress+')'); end;
procedure TForm2.bSendClick(Sender: TObject); begin Log.Lines.Add(eCmd.Text); Server.Socket.SendText('#'+eCmd.Text+'#'); end;
procedure TForm2.ServerClientDisconnect(Sender: TObject; Socket: TCustomWinSocket); begin Log.Lines.Add('Verbindung verloren ('+Socket.RemoteAddress+')'); lVic.Caption:='Keine'; SetzePosition(0); end; |
Ich hoffe ihr könnt mir helfen, habe jetzt nicht den gesamten Quellcode vom Server reingeschrieben, das Programm hat ja auch noch andere Funktionen.
Lieben Gruß & gute Nacht.