RAW Sockets und Threads

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
kait
User
Beiträge: 9
Registriert: Mittwoch 6. Mai 2009, 14:23

Samstag 9. Mai 2009, 10:33

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?
EyDu
User
Beiträge: 4871
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Samstag 9. Mai 2009, 10:59

Nur der aktive Thread sollte die Daten bekommen. Jedes andere Verahlten wäre sehr unerwartet.
Das Leben ist wie ein Tennisball.
Mad-Marty
User
Beiträge: 317
Registriert: Mittwoch 18. Januar 2006, 19:46

Montag 11. Mai 2009, 15:43

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.
kait
User
Beiträge: 9
Registriert: Mittwoch 6. Mai 2009, 14:23

Montag 11. Mai 2009, 15:48

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 ;)
Antworten