![]() |
TClient/Server Socket erfindet leere Zeilen
Moin,
ich habe hier ein nerviges Problem mit TServerSocket / Client Kompos. Server:
Delphi-Quellcode:
Client:procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket); begin Memo1.Lines.Append(Socket.ReceiveText); end;
Delphi-Quellcode:
Lokal ist alles wunderbar, aber sobald ich das ganze übers Internet mache hat das Ding plötzlich mehr Zeilen ( leere ) :gruebel:
procedure senden;
begin Form1.ClientSocket1.Socket.SendText(Form1.Memo1.Lines.Text); end; z.B.: Clientmemo: wert1 wert2 wert3 wert4 wert5 Servermemo: wert1 wert2 wert3 wert4 wert5 Gibt es dabei soetwas wie ein Sync Problem? Interessanterweise sind die Leerzeilen immer an der selben Stelle, aber lokal tritt es halt nicht auf. Wer kann mir da helfen? Langsam werde ich wahnsinnig :wall: viele Grüße Andy |
Re: TClient/Server Socket erfindet leere Zeilen
Probier mal mit den beiden Eigenschaften WantReturns uns Wordwrap vom Memo ein bisschen herum!
Normalerweise müsstest du beim Server Wordwrap := False; WantReturns := True; WantReturns schaltet die Zeilenumbrüche ein, und Wordwrap verhindert ein Automatisches umbrechen! Beim Client Wordwrap auf True, sonst musste immer so lästig scrollen. Mein Verdacht: Das Client-Memo bricht mit jedem von dir reingemachten Return um: Zeile1 Zeile2 Zeile3 Dann sendest du das Ganze zum Server, und zwar als String: 'Zeile1'+#13+'Zeile2'+#13+'Zeile3' Wenn nun das Server-Memo den String erst mit Wordwrap umbricht (Zeile zuende) und DANN die #13 interpretiert haste genau dein Problem. Nur so ne Idee! Oder: Das Server-Memo is kleiner als das vom Client. Also entwerder gleiche größe oder beim Server Wordwrap auf False... |
Re: TClient/Server Socket erfindet leere Zeilen
Nimm anstatt procedure
Memo1.Lines.Append(Socket.ReceiveText); die folgende Zeile Memo1.LInes.Text:=Memo1.Lines.Text+Socket.ReceiveT ext; (Appand geht immer in die nächste Zeile wenn du etwas hinzugefüt hast) |
Re: TClient/Server Socket erfindet leere Zeilen
Danke Kamil :thuimb:
der Tip hats gebracht. Zwar tritt der Fehler immernoch ein einziges Mal in dem kompletten Memo auf, aber das habe ich einfach gelöst, indem ich Leerzeilen rausfilter. Nicht schön, aber selten :roll: viele Grüße Andy |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:19 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 by Thomas Breitkreuz