| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > QTCPServer, срабатывание сигналов и слотов |
| Автор: Filin88 12.9.2014, 03:31 | ||
| Здравствуйте! Делаю сервер, один поток. К нему в теории будут подключаться от 100 до 1000 клиентов. Механизм обработки сервером новых подключений реализую через сигналы и слоты. Суть в том, что каждое соединение у меня заносится в вектор со структурами:
Когда передаются байты, я ищу в этом векторе нужный сокет по адресам указателей и таким образом вычисляю нужный буфер с принятыми байтами incoming_bytes для данного соединения. При разрыве соединения клиентом происходит вызов слота deleteLater() и обNULLение pClientSocketа в соответствующей структуре. Меня беспокоит одновременное подключение нескольких клиентов к серверу, получается что при соединении будут вызываться одновременно несколько слотов newConnection, а вектор то с адресами один. Как бы они не передрались за него. Могут ли одновременно вломиться в одну ячейку вектора несколько клиентов и захватить один буфер? Или у слотов есть последовательная обработка и у меня параноя? Насколько корректна данная схема обработки соединения с клиентами? |
| Автор: borisbn 12.9.2014, 10:23 |
| Не передерутся)) Твой newConnection будет вызываться последовательно в том потоке, в котором создан сервер |