Название: Асинхронный однопоточный сервер и буфер данных Отправлено: demiurg от Май 04, 2011, 00:08 Встала задача передо мной собирать данные с TCP\IP клиентов. Порядок работы следующий - клиент соединяется с сервером , происходит протокол обмена , клиент отключается. Начал мастырить всё на АОС ,но для реализации протоколо необходим отдельный глобальный буфер данных для каждого клиента(могут вклиниться данные другого клиента). Встал вопрос а как связать например список сокетов и список буферов?
Мастырил чтото типа Цитировать class My_client: public QTcpServer{ Q_OBJECT public: My_client(QObject *parent=0); ~My_client(); QTcpSocket *cl_sock; QString buffer; }; Но вот тут происходит "рассинхронизация" client->cl_sock = qobject_cast<QTcpSocket*>(sender()); Собсно сокет знаем а в буфере то может быть чего попало. И отвлеченный вопрос , сколько одновременных подключений потянет такая реализация сервера? Теоретически... Название: Re: Асинхронный однопоточный сервер и буфер данных Отправлено: merke от Май 04, 2011, 08:08 QMap тебе в помощь, где ключем будет ссылка на сокет, а значением твой буфер
Название: Re: Асинхронный однопоточный сервер и буфер данных Отправлено: demiurg от Май 04, 2011, 09:09 QMap тебе в помощь, где ключем будет ссылка на сокет, а значением твой буфер ;) ОГРОМНОЕ спасибо за подсказку , усё пашет.Я уж думал многопоточный создавать и выделять по потоку на клиента ;D |