Russian Qt Forum
Ноябрь 24, 2024, 03:50 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Асинхронный однопоточный сервер и буфер данных  (Прочитано 3532 раз)
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()); Собсно сокет знаем а в буфере то может быть чего попало.

И отвлеченный вопрос ,  сколько одновременных подключений потянет такая реализация сервера? Теоретически...
Записан
merke
Гость
« Ответ #1 : Май 04, 2011, 08:08 »

QMap тебе в помощь, где ключем будет ссылка на сокет, а значением твой буфер
Записан
demiurg
Гость
« Ответ #2 : Май 04, 2011, 09:09 »

QMap тебе в помощь, где ключем будет ссылка на сокет, а значением твой буфер

 Подмигивающий ОГРОМНОЕ спасибо за подсказку , усё пашет.Я уж думал многопоточный создавать и выделять по потоку на клиента  Смеющийся
 
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.06 секунд. Запросов: 21.