Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: WSARecv Hook - Pakete loggen und ändern

  Alt 20. Nov 2007, 17:05
Zitat von Zacherl:
* Kommen die Pakete sicher in der richtigen Reihenfolge an?
Ja, der TCP Stack sorgt für die richtige Reihenfolge.
Zitat von Zacherl:
* Kann ich in diesem Falle einfach die Originalfunktion so oft aufrufen, bis mindestens ein Befehl vorhanden ist, den Rest puffern und beim nächsten Aufruf übergeben? Konkret geht es mir darum, dass ich nicht weiß, wie sich die Puffergrößen verhalten, die der Funktion WSARecv übergeben werden.
Du kannst ja mit mehreren Puffern arbeiten. Ich würde aber nur einen Puffer nützen (dwBufferCount=1).
In lpNumberOfBytesRecvd erhältst du die Anzahl der Bytes.
Wenn diese Anzahl < deiner Puffergrösse ist, dann bist du vorerst fertig.
Falls die Anzahl gleich deiner Puffergrösse ist, solltest du die Daten wegspeichern und gleich nochmal WSARecv aufrufen.
Du könntest aber auch die Funktion recv() aufrufen; die ist nicht so komplex und einfacher aufzurufen.
Andreas
  Mit Zitat antworten Zitat