Re: Problem mit ClientSocket.Socket.SendText
14. Jul 2009, 19:21
Ich möchte auch mitraten: Kann es sein dass du beim Empfänger (in diesem Falle das OnClientRead des TServerSockets) erwartest, dass die Texte in einem Aufruf mit ReceiveText ankommen, welche du auch so in einem Stück versendet hast?
TServerSocket/TClientSocket versenden nur Rohdaten und implementieren kein Protokoll. Durch diesen Fakt garantieren sie dir nur eins: die Daten kommen in der gleichen Bytereihenfolge an wie sie versendet werden oder es gibt einen Fehler. Aber sie garantieren dir keine Teilung der Daten. Die Daten können dabei unterteilt werden wie sie lustig sind - im schlimmsten Falle (z.B. schlechte Verbindung) bekommst du alle Minute mal ein Zeichen. Du musst dafür sorgen die Daten ordentlich zu handeln und du musst dafür sorgen zu wissen ob eine Nachricht vollständig empfangen wurde oder nicht bevor du sie verarbeitest. Von daher musst du dir ein Protokoll ausdenken und implementieren. Die Sockets bieten dir nur eine Schnittstelle um Bytes zu übertragen.
Such hier im Forum und du wirst genügend Beispiele finden.
@Klaus01: er baut einen String zusammen, der Parameter ist genauso ein String und damit wird in diesem Falle #0 unerheblich. Selbst wenn es mit in dem String sein sollte, würde es einfach so mitgesendet werden.
EDIT: Warum auch immer das damit geht...
|