Announcement

Collapse
No announcement yet.

Daten werden "verschluckt"

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

  • Daten werden "verschluckt"

    Hi Leute!
    also ich habe bei einer asynchr. socket-verbindung folgendes problem:
    wenn ich z.B. in einer schleife vom client zum server viele kleine "datenhäppchen" sende, dann kommt sozusagen nur die hälfte an.
    ich weiß jetzt nur noch nicht genau, ob es daran liegt, ob 1)der client nicht schnell genug senden kann oder ob 2)der sever nicht schnell genug beim empfangen der daten ist.

    1)sollte der client sich also beim senden verschlucken, könnte man ja vielleicht eine art FIFO-puffer programmieren...eigentlich gar kein problem, nur:
    woher weiß der FIFO-puffer wann er senden soll??
    sprich: wie kriege ich raus ob der socket bereit zum versenden von daten ist (also nicht gerade im moment daten sendet)??

    2)kann es überhaupt sein, dass der server "zu langsam" ist beim empfangen??
    denn eigentlich implementiert TCP doch flusskontrolle oder benötigt diese zu lange um zu erkennen, dass der client ja eigentlich zu schnell sendet???

    ok...das waren jetzt sehr viele fragen auf einmal....aber ich hoffe mir kann irgendjemand helfen.....

    thx
    Memger

  • #2
    Hi!

    Das mit dem Datenverschlucken hat mich auchmal schlaflose Nächte gekostet.

    Daten kommen nur dann in der richtigen Reihenfolge, korrekt etc. an, wenn man es über Streams macht. Ansonsten sind die Sockets nämlich bedauerlicherweise Datagram-Sockets.

    Du mußt die Sockets auf ctblocking stellen und TWinSocketStream-Objekte darauf erzeugen und mit denen dann schicken/empfangen.

    Es gibt ein Beispiel im Form hier (TWinSocketStream suchen) oder Du kannst mir einfach mailen

    cu
    Tim

    Comment

    Working...
    X