WSASend
-
Da ich dazu in der MSDN nichts gefunden hab: Kann man bei einem Aufruf von WSASend davon ausgehen, dass die (WSABUF-) Buffer unverändert bleiben? Sie sind in der Funktionsdeklaration ja als non-const angegeben, aber meinem Verständnis nach sollte der Inhalt des Buffers ja nicht verändert werden..?
In meinem Fall will ich dieselben Daten an mehrere Clients verschicken. Da wäre es natürlich schick, wenn ich nicht für jeden Client einen eigenen Puffer bräuchte, sondern denselben Speicher an alle Clients verschicken kann (also
WSABUF.bufist bei allen Aufrufen vonWSASendgleich).
-
Und was ist jetzt genau die Frage?
-
Kann man bei einem Aufruf von WSASend davon ausgehen, dass die (WSABUF-) Buffer unverändert bleiben?
-
Ja. Aber musst schon noch definieren wie Du das genau meinst..Bsp.Fall?
-
Etwa so:
char* CommonBuf = ...; WSABUF Buf1={CommonBuf,Size}, Buf2=Buf1; WSASend( SocketA, &Buf1, 1, ... ); WSASend( SocketB, &Buf2, 2, ... );Ob das in Ordnung ist, weil sich die beiden ja quasi den Buffer teilen
-
Bei deinem Bsp. kannst Du auch gleich den gleichen Buffer verwenden...
-
-lowbyte- schrieb:
Bei deinem Bsp. kannst Du auch gleich den gleichen Buffer verwenden...
Naja, keine Ahnung
Könnte ja sein, dass die WSASend-Implementierung das len-Attribut vom WSABUF ändert, wärend sie darauf herumarbeitet.