Announcement

Collapse
No announcement yet.

Probleme beim senden von Strings mit TServerSocket und TClientSocket

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Probleme beim senden von Strings mit TServerSocket und TClientSocket

    Ich habe in Delphi 5 Professional einen Server und einen Client mit TServerSocket und TClientSocket erstellt.
    Der Server sendet laufend einzelne Strings mit Socket.SendText an den Client, welche dieser mit Socket.ReceiveText empfängt.
    Wenn sich nun mehrere Clients geleichzeitig beim Server anmelden oder ich nur einen Client habe und diesen kurzfristig mit einem Haltepunkt anhalte setzt der Client die einzelnen zwischenzeitlich empfangenen Strings zu einem ganzen String einfach zusammen!
    Wer kennt dieses Problem und kann mir helfen?
    Server und Client sind auf nonBlocking eingestellt!!

    Im Voraus schon besten Dank an die Antwortgeber!

  • #2
    (Neu!

    Comment


    • #3
      Kennen tue ich dieses Problem nicht. Aber es ist einfach einfach einen Buffer zu senden. Dann ließt du einfach den ReceiveBuf (wenn ich mich recht erinnere, ist schon länger her) aus. das ganze machst du bis der Buffer leer ist. Du holst immer soviel aus dem Buffer wie das Record groß ist. Oder der String oder was auch immer.<br>
      An die Größe der einzelnen Packete kommst du recht einfach. Nehmen wir mal an du hast die Variable "text". Die Variable muss bei Server und Client gleich deklariert werden (logisch ... ).<br>
      Beim auslesen kommst du mit SizeOf(text) an die Größe. Soviel nimmst du sozusagen aus dem Empfangsbuffer heraus um es zu verarbeiten.<br>
      Das ganze realisierst du am besten mit einer While Schleife.<br><br>
      while socket.buffergröße > 0 do begin<br>
      text := socket ........<br>
      end<br><br>
      So ungefähr, ich kann mich halt nicht mehr an die genauen Bezeichnungen erinnern, sorry ... Ich hoffe ich konnte dir trotzdem ein wenig weiterhelfen ...<br><br>
      Ciao Hage

      Comment


      • #4
        Hallo Tobias,<br>seit D2 arbeite ich mit TClientSocket und TServersocket. Ich verwende grundsätzlich nur noch den Blocking Mode und TWinSocketStream. Alles andere hat als instabil erwiesen. Das kann natürlich auch an meiner Unkenntnis liegen.<br>Jens Schuman

        Comment

        Working...
        X