Seite 1 von 1

RAW Sockets und Threads

Verfasst: Samstag 9. Mai 2009, 10:33
von kait
Hallo,
wenn ich mehrere Threads habe, die alle auf einem RAW Socket ein recv() ausführen, bekommen dann alle Threads jedes ankommende Paket oder wird jedes Paket nur einmal an den ersten Thread ausgeliefert der gerade aktiv wird?

Verfasst: Samstag 9. Mai 2009, 10:59
von EyDu
Nur der aktive Thread sollte die Daten bekommen. Jedes andere Verahlten wäre sehr unerwartet.

Re: RAW Sockets und Threads

Verfasst: Montag 11. Mai 2009, 15:43
von Mad-Marty
kait hat geschrieben:Hallo,
wenn ich mehrere Threads habe, die alle auf einem RAW Socket ein recv() ausführen, bekommen dann alle Threads jedes ankommende Paket oder wird jedes Paket nur einmal an den ersten Thread ausgeliefert der gerade aktiv wird?
Nur der 1. der .recv() ausführt natürlich.
Wenn bei dir mehrere Threads auf den selben socket zugreifen kannst du deine App Architektur gleich mal komplett wegwerfen und neu machen.

Re: RAW Sockets und Threads

Verfasst: Montag 11. Mai 2009, 15:48
von kait
Mad-Marty hat geschrieben:
kait hat geschrieben:Hallo,
wenn ich mehrere Threads habe, die alle auf einem RAW Socket ein recv() ausführen, bekommen dann alle Threads jedes ankommende Paket oder wird jedes Paket nur einmal an den ersten Thread ausgeliefert der gerade aktiv wird?
Nur der 1. der .recv() ausführt natürlich.
Wenn bei dir mehrere Threads auf den selben socket zugreifen kannst du deine App Architektur gleich mal komplett wegwerfen und neu machen.
Macht sie nicht, deswegen habe ich ja vorher gefragt ;)