daemon777
Lt. Commander
- Registriert
- Dez. 2003
- Beiträge
- 1.371
Hallo Leute,
nachdem mir die Multithreadingsachen unter boost echt Spaß gemacht haben (so einfach war es einfach noch nie) habe ich mir gedacht: hey bevor du wieder die ganzen w32_socket-Geschichten auspackst nimm doch einfach auch hier boost. Allerdings kann ich mich hier noch nicht so ganz mit anfreunden und frage mich ob es nicht einfacher ist doch wieder zurück zu den alten win-Sockets zu gehen.
Mein Problem ist folgendes:
eigentlich möchte ich im Moment nur einen Server erstellen, der eine gewisse Anzahl an Verbindungen annehmen und anschließend verwalten kann. Die Beispiele von der Seite sind ja schön und gut aber irgendwie wird in den Beispielen auch immer eine Vielzahl von Objekten angelegt (entweder io_services oder sockets oder was weiß ich). Deshalb sehe ich hier im Moment nicht so ganz den Sinn der Asio-Bibliothek.
Also habe ich mal n Threads erstellt und jeder wartet auf eine Verbindung, schickt anschließend ein paar Datan raus und schließt wieder. Das erwartete Verhalten wäre, dass beim Öffnen von 2 Clients beide Nachrichten bekommen. Aber genau das passiert eben nicht. Der Erste bekommt alle Nachrichten und der Zweite bekommt gar keine. Lustigerweise werden aber alle geöffneten Clients ebenfalls mit dem Ersten beendet. Es wird also schon eine Verbindung aufgebaut.
Man sollte vielleicht hinzu sagen, dass ich alle Clients auf einem Rechner laufen lasse, was zum Testen auch anders einfach gar nicht sinnvoll ist. Meine Vermutung ist jetzt, dass mir genau das eben Probleme bereitet.
Weiß jemand, ob das ein grundsätzliches Problem ist und/oder wie man so etwas angehen kann? Im Moment greife ich irgendwie nach Strohhalmen und das Reinarbeiten in eine Bibliothek macht auch nur so lange Spaß, wie eben alles funktioniert
Ob asynchron oder nicht ist mir übrigens ziemlich egal. Wenn mir boost die Verwaltung abnimmt ist schön und wenn ich es selber machen muss ist das jetzt ja auch nicht unbedingt die größte Arbeit.
Wäre cool wenn hier schon jemand ein solches Problem hatte oder eine Ahnung hat was ich ausprobieren kann.
viele Grüße
daemon777
nachdem mir die Multithreadingsachen unter boost echt Spaß gemacht haben (so einfach war es einfach noch nie) habe ich mir gedacht: hey bevor du wieder die ganzen w32_socket-Geschichten auspackst nimm doch einfach auch hier boost. Allerdings kann ich mich hier noch nicht so ganz mit anfreunden und frage mich ob es nicht einfacher ist doch wieder zurück zu den alten win-Sockets zu gehen.
Mein Problem ist folgendes:
eigentlich möchte ich im Moment nur einen Server erstellen, der eine gewisse Anzahl an Verbindungen annehmen und anschließend verwalten kann. Die Beispiele von der Seite sind ja schön und gut aber irgendwie wird in den Beispielen auch immer eine Vielzahl von Objekten angelegt (entweder io_services oder sockets oder was weiß ich). Deshalb sehe ich hier im Moment nicht so ganz den Sinn der Asio-Bibliothek.
Also habe ich mal n Threads erstellt und jeder wartet auf eine Verbindung, schickt anschließend ein paar Datan raus und schließt wieder. Das erwartete Verhalten wäre, dass beim Öffnen von 2 Clients beide Nachrichten bekommen. Aber genau das passiert eben nicht. Der Erste bekommt alle Nachrichten und der Zweite bekommt gar keine. Lustigerweise werden aber alle geöffneten Clients ebenfalls mit dem Ersten beendet. Es wird also schon eine Verbindung aufgebaut.
Man sollte vielleicht hinzu sagen, dass ich alle Clients auf einem Rechner laufen lasse, was zum Testen auch anders einfach gar nicht sinnvoll ist. Meine Vermutung ist jetzt, dass mir genau das eben Probleme bereitet.
Weiß jemand, ob das ein grundsätzliches Problem ist und/oder wie man so etwas angehen kann? Im Moment greife ich irgendwie nach Strohhalmen und das Reinarbeiten in eine Bibliothek macht auch nur so lange Spaß, wie eben alles funktioniert

Ob asynchron oder nicht ist mir übrigens ziemlich egal. Wenn mir boost die Verwaltung abnimmt ist schön und wenn ich es selber machen muss ist das jetzt ja auch nicht unbedingt die größte Arbeit.
Wäre cool wenn hier schon jemand ein solches Problem hatte oder eine Ahnung hat was ich ausprobieren kann.
viele Grüße
daemon777