Название: QThread и WaitForConnected. Отправлено: C5.Jett от Июль 29, 2011, 16:09 Пишу тест в котором тестирую подключение и передачу/получение данных через QLocalSocket/QLocalServer в создаваемом мною потоке должен получить сообщение на один fifo и отправить через другой.
Функция читалка: Код: QString CConnLib::Read(const QString& host, unsigned int timeOut) { Код: int CConnLib::Send(const QString& host,QString message, Код: void MyThread1::run() { Код: void ConnectorTest::ReadWriteTest() Помогите кто чем может!! Разбираюсь недавно и совсем в тупик заехал: каждый раз тест ведет себя по разному.Но в общем кажется, что в потоке функция read не ждет соединения. Заранее спасибо! Название: Re: QThread и WaitForConnected. Отправлено: ритт от Июль 29, 2011, 16:59 насколько я могу понять, тест некорректен. начните с малого - стандартных примеров Qt (examples/ipc/localfortuneclient + examples/ipc/localfortuneserver)
з.ы. s/qDebug(data.toStdString().c_str());/qDebug() << data;/ Название: Re: QThread и WaitForConnected. Отправлено: C5.Jett от Июль 29, 2011, 17:17 Примеры прочитал - там асинхронная работа, а мне нужно синхронно. Я вообще все это затеял чтобы соединить две проги: в линуксе я бы просто фифо создал и все. А в windows - не ясно. Насчет теста: я правильно понимаю, что после того как я запустил поток - он выполняет то, что написано в run()?Если так, то после запуска теста, сервер ждет 5 сек входящего подключения, а ридер в потоке пытается 5 сек подключиться. Так вот иногда они подключаются, а иногда (тест исполняется гораздо меньше 5 сек) нет..А где же ожидание?
Название: Re: QThread и WaitForConnected. Отправлено: ритт от Июль 29, 2011, 19:05 тест некорректен.
нужна синхронная работа - тогда зачем потоки вообще? Название: Re: QThread и WaitForConnected. Отправлено: C5.Jett от Июль 30, 2011, 07:24 Задача стояла, просто под виндой соеденить два Qt'шных приложения. Так что одно приложение запускает другое, создает поток, в котором посылает второму приложению запрос. Второе приложение при загрузке читает запрос (или висит до тех пор пока не придет запрос) И отсылает первому ответ. Поток первого его получает и передает родителю.Соответственно поток тоже должен висеть пока не придет ответ. +Хотелось бы это сделать весьма просто.
Название: Re: QThread и WaitForConnected. Отправлено: ритт от Июль 30, 2011, 22:14 и именно поэтому Вы создаёте пайп то на клиенте, то на сервере?
а не проще ли будет использовать каналы только что запущенного процесса (http://doc.trolltech.com/latest/qprocess.html#setProcessChannelMode)? |