Przenoszenie odbieranych informacji z głównego do konkretnych wątków

0

Witam,
aktualnie w dosyć prosty sposób odbieram przychodzące informacje na serwer TCP, zawartość ta zaraz po odbieraniu jest przypisywana do, nazwijmy to "pokoju" po identyfikacji socketów.

Moje pytanie jest następujące:

  • chciałbym, te "pokoje" uruchamiać w oddzielnych wątkach. Pytanie jak dosłać im kolejne przychodzące dane? Potrzebuję nakierowania, podpowiedzi jak to rozłożyć, jakich 'narzędzi' użyć, bo obawiam się, że sygnał-slot chyba nie do końca zadziała w oczekiwany przeze mnie sposób.
0

Piszesz w Qt, użyj sygnałów i slotów, dzięki temu bezpieczną wielowątkowość masz za darmo. Przy czym zastanów się, czy na pewno w ogóle potrzebujesz tutaj wątków, podejrzewam, że może być to zbędne.

0

To chyba kwestia tego, czy timer mi się nie wysypie, bo mam te swoje pokoje i ograniczam czas do 30 sekund, po 30 sekundach muszę wysłać odpowiedź i zrestartować zegar. Po prostu obawiam się, że jak utworzę drugi i kolejny taki pokój, to mogę nad tym nie zapanować.

1

Jak nie przetrzymujesz niepotrzebnie event loopa, to raczej mało prawdopodobne.

1

Hmmm...QTcpServer daje Ci Bracie @BartoSAS QTcpSocket po nawiązaniu połączenia, a w którym to możesz czytać/pisać ze strumienia. Co więcej, QTcpSocket jest potomkiem QObject, zatem możesz na nim użyć QObject::moveToThread().

EDIT:
Musisz czekać 30s? bool waitForBytesWritten(int msecs = 30000) oraz bool waitForReadyRead(int msecs = 30000)

0

Ok, dzięki, bo mam bieda VPS i dlatego tak kombinuje

1 użytkowników online, w tym zalogowanych: 0, gości: 1