Announcement

Collapse
No announcement yet.

Chat mit Delphi-Bordmitteln

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

  • Chat mit Delphi-Bordmitteln

    Hallo!<p>

    Das Problem, das bei mir seit einiger Zeit im Kopf rumgeistert sollte für die meisten von Euch (oder siezt man sich hier??) eher leicht zu lösen sein. Leider kenne ich mich nicht mit den Delphi-Internen TCP/IP-Bordmitteln (in meinem Fall TClientSocket und TServerSocket) aus.<p>

    Die Delphi-Beispiele (Chat etc.) sind ja recht einleuchtend, aber trotzdem hatte ich massive Probleme etwas Entsprechendes nachzubauen:<br>
    Über SendText verschickte Strings komme nicht chronologisch an (warscheinlich irgendwas mit asynchron und bei schnellem Hintereinanderschicken von Strings kommt auf Einmal nur noch ein String an, bestehend aus beiden Strings. (äh, wenn das so klar wird <p>

    Gibt es denn keine produktiviere Lösung Text über TCP/IP (möglichst synchron) zu verschicken?

    Danke im Vorraus,
    Patrik Hübner

  • #2
    Hi!<br>
    Syncron müsste der eigendlich schon ankommen, den das TCP-Protokoll garantiert die unversehrte Ankunft aller Pakete und deren korrekte Reihenfolge...<br>
    Wenn du schnell Daten schicken willst empfehle ich dir einen Datentyp mit konstanter Größe zu benutzen und ausschließlich diesen mit dem Befehl SendBuf(Datentyp,SizeOf(Datentyp)) zu schicken. Das könnte ja z.B. ein Record mit dem Text, dem Namen des Absenders, etc. sein.<br>
    Zum auslesen benutz einfach das ClientRead Event und mach folgendes:<br>
    var<br>
    Puffer: Datentyp<br>
    begin //von ClientRead<br>
    while not (Socket.RecieveLength=0) do begin<br>
    Socket.ReceiveBuf(Puffer,SizeOf(Puffer));
    MACH HIER MIT DEM PUFFER WAS DU WILLST<br>
    end;<br>
    end; //von ClientRead<br>
    ich hoffe das hilft dir!<br>
    --Volker<br&gt

    Comment

    Working...
    X