Noch ne Frage zu CAsyncSocket



  • Sorry wenn das schon iwo behandelt wurde, ich habe ne Zeitlang danach gesucht und es iwie nicht verstanden oder nichts passendes gefunden.

    Wenn ich schnell hintereinander Strings versende, kommen die beim Empfänger meistens als ein String an(außer wenn ich es lokal teste, dann funzt es).
    Jetzt habe ich an mehreren Stellen gelesen, dass man einen String mit NULL abschließen sollte...ich kann mir nur nich ganz vorstellen wie das gehn soll...muss ich das inne char[] umwandeln oder so? und das dann halt als buffer senden?
    Und wie frage ich das beim Empfänger ab?



  • Wenn in einem bestimmten Zeitraum nochmals gesendet wir dann werden die Daten in ein Socketpacket verpackt. Somit spart man Trafic. Ich finde leider den Artikel in der MSDN nicht darüber.



  • Jo, so in etwa habe ich mir das schon gedacht, nur wie teile ich die dann wieder in einzelne auf?

    Nen Bekannter von mir meinte einfach mal string = string+'\x0' vor dem senden des Strings zu machen, das werde ich jetzt mal testen, mal sehn ob das funzt 😉

    edit: Jo das funzt ganz gut, ich war nur eigentlich der Meinung, dass der CAsyncSocket sowas automatisch machen würde, da ich in mehreren Tuts auch nichts Entsprechendes darüber gefunden habe.



  • Mahlzeit,
    tip von mir 😉
    STX und ETX dafür sind die ja da..
    und es ist wichtig welche protokol man beutzt bei udp könnte es vorkommen das die telegramme(strings) doppelt ankommen sogenannter doppler.
    dann sucht man nur noch im string der angekommen ist nach STX(0x02) bis ETX(0x03).



  • habe einfach das programm 50 millisekunden lang schlafen lassen mit Sleep(). klappt super gut


Anmelden zum Antworten