ďťż
They seem to make lots of good flash cms templates that has animation and sound.

ryszard bazarnik, koncert na ścianie

Mam problem, ale nie wiem czy ktoś będzie umiał mi pomóc.

Otóż chodzi o programowanie w C++ przy użyciu MFC. Korzystając z AfxBeginThread tworzę sobie wątki to jest jasne. Pytanie brzmi w jaki sposób przekazać zmienną stworzoną w jednym wątku do drugiego wątku, dokładnie chodzi mi nie o zmienną a o strukturę SOCKET. Potrzebuję to do projektu który musze skończyć jak naj szybciej bo kampania wrześniowa coraz bliżej.

Za wszelkie rady z góry dzięki.


Rozumiem, że założenie jest takie, że masz pewną liczbę wątków, która ma korzystać ze wspólnego obiektu (w tym przypadku SOCKET). Wątek, który jako pierwszy potrzebuje tego obiektu tworzy go, a pozostałe gdy go potrzebują mają z niego skorzystać. Przy takich założeniach można skorzystać ze wzorca Singleton albo po prostu stworzyć statyczną metodę w jakiejś klasce, która będzie zwracać ten obiekt (i tworzyć go jeśli jeszcze nie jest stworzony). Oczywiście należy tu pamiętać, że obiekt SOCKET musi być thread-safe albo trzeba samodzielnie zapewnić synchroniczny do niego dostęp.
Tzn dokładnie to wygląda tak:

Jest jeden główny wątek, który przy podłączaniu klienta ma tworzyć dla niego SOCKET i odrębny wątek do jego obsługi i nie wiem w jaki sposób przekazać SOCKETA do tego wątku, bo jeżeli korzystam z AfxBeginThread to jako jedyny parametr podaje mu wskaźnik do klasy okana głównego bo wątek ma też modyfikować niektóre parametry z tej klasy. Wzorzec Singleton (nie wiem czy dobrze pamiętam co to) by się nie sprawdził bo każdy klient musi mieć swój SOCKET.

Ale teraz przyszło mi do głowy że zamiast nasłuchiwać na klienta w tym głównym wątku może warto było by od razu stworzyć nowy wątek dla klienta który się jeszcze nie podłączył i w tym watku stworzyć dla niego SOCKETA i na nim nasłuchiwać. Musze to sprawdzić.

W każdym bądź razie dzięki Kuba za zainteresowanie i sugestie:)
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • cichooo.htw.pl