Ich bastel momentan ein einer C++ Klasse die für die Kommunikation zwischen Server und Client zuständig sein soll.
U.a. wird dabei der Server initialisiert (bind, listen, etc) und, da es mehrere Clients geben soll, werden die verschiedenen Sockets verwaltet.
Das Problem dabei ist natürlich, daß das das Programm nichtmehr viel tut wenn ich in einer Schleife neue Verbindungen akzeptiere ( mit accept :-)).
Mein erster Gedanke war folgender:
Ich starte einen neuen Thread, geb ihm einen Zeiger mit durch den er im Speicherbereich des alten Threads die neuen Sockets speichern kann, und laße ihn einfach nur die Verbindungen akzeptieren.
Das Problem liegt dabei im gemeinsam genutzten Speicherbereich; schließlich muß dieser für ThreadX gesperrt werden wenn ThreadY darauf zugreifen will, ansonsten riskiert man Inkonsitenzen.
Aber wie realisiere ich das?
Ich habe mal unter Linux einen Ringbuffer mit Semaphoren zur IPC geschrieben, aber eigentlich sollte es da schon Mechanismen dafür geben, oder?