Drews Silkroad Security Frage

  • Also ich lese und mir gerade Drews Silkroad Security Tutorial durch, habe nun eine Frage dazu dort steht:
    "Packets are not guaranteed to be received in whole. This means you will have to maintain a buffer and check before you can parse a packet."
    Das müsste ja bedeuten das manche packete nicht im ganzen gesendet werden sondern wäre auch möglich über 2 oder mehr Packete, ist das denn Richtig? Falls ja woran erkenne ob ich noch ein Packet erhalte was zu dem davor gehört?


    Oder ist das schwachsinn?

  • Nein, es stimmt schon dass packets manchmal nicht ganz ankommen !


    Du liest ja als erstes den Header von einem Packet, da steht ja länge, opcode, und die security bytes drinne.
    Manchmal ist alt der Fall dass die Packet länge 55 beträgt, im Eigangspuffer des Sockets aber nur z.B. 30 bytes vorhanden sind.
    Dann liest du halt die 30 bytes die zu dem packet gehören, speicherst das unvollständige packet ab und checkst im nächsten loop ob die restlichen bytes angekommen sind und fügst das packet dann zusammen !


    MfG

  • Am Besten schaust du dir mal den kbot als bot oder den ktor als proxy von keinplan an.
    Auch gut ist die SilkroadSecurity Klasse in c# von Drew Benton.
    Da kannst du dir die Empfangsklassen und so anschauen , ist auch gut beschrieben.


    MfG