crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

mezmay
  опции профиля:
сообщение 10.12.2012, 21:28
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 272
Регистрация: 13.7.2009
Из: Ростов-на-Дону
Пользователь №: 904

Спасибо сказали: 16 раз(а)




Репутация:   1  


Ситуация такая: есть два объекта в одном потоке, работающие с одним сокетом. Первый объект - объект авторизации - принимает от сервера команду авторизации, после чего я делаю дисконнект его слотов от сигналов сокета. Сразу после этого делаю коннект сигналов сокета к слотам второго, принимающего все остальные команды, объекта. Проблема: когда я принял и вычитал команду авторизации и отсоединил слоты:
disconnect(m_pTcpSocket, SIGNAL(readyRead()),
        this, SLOT(onReceive())); //и т.д.

вызов слота onReceive() все равно идет далее по стеку функций, то есть данные, которые предназначаются второго для объекта, попадают в слот первого. Что можно сделать? Хотелось бы мгновенно отключать слоты одного объекта и подключать слоты второго, чтобы команды принимать там где надо...

Сообщение отредактировал mezmay - 10.12.2012, 21:30
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов (1 - 3)
RazrFalcon
  опции профиля:
сообщение 11.12.2012, 1:14
Сообщение #2


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


в onReceive принимать sender() и смотреть чей он
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 11.12.2012, 3:21
Сообщение #3


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(RazrFalcon @ 11.12.2012, 3:14) *
в onReceive принимать sender() и смотреть чей он
+1, слот выступит в роли коммутатора
Для облегчения коммутации можно задать objectName, при создании объекта
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mezmay
  опции профиля:
сообщение 12.12.2012, 19:05
Сообщение #4


Активный участник
***

Группа: Участник
Сообщений: 272
Регистрация: 13.7.2009
Из: Ростов-на-Дону
Пользователь №: 904

Спасибо сказали: 16 раз(а)




Репутация:   1  


sender там один и тот же - сокет. Т.к. эти два объекта в одном потоке, то решил не париться и принимать все сигнал только в одном объекте и вызывать, когда нужно, методы второго
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 12.7.2025, 9:45