Название: QTcpSocket write вылетает Отправлено: mr.zhelez от Февраль 26, 2013, 21:08 У меня есть сервер, который принимает клиентов и каждый работает в отдельном потоке. Приветственное сообщение успешно отправляется. И сообщение от клиентов сервер тоже принимает. Но когда при нажатии на контрол формы вызываю метод, в котором обычный socket->write(...) и ничего более, сервер вылетает. Что за причина может быть? Я проверял, соединение установлено и вообще все в порядке.
Название: Re: QTcpSocket write вылетает Отправлено: carrygun от Февраль 27, 2013, 05:21 Очевидно же что телепатов тут нет. Нужен код или пример. Что за ошибка? И так далее.
Название: Re: QTcpSocket write вылетает Отправлено: mr.zhelez от Февраль 27, 2013, 15:40 Очевидно же что телепатов тут нет. Нужен код или пример. Что за ошибка? И так далее. Ошибки нет никакой, я же говорю, что сервер просто вылетает. (http://s45.radikal.ru/i109/1302/77/9cdb4964ad66.png) А код не смогу, большой. Если есть желающие помочь то напишите, я покажу... Название: Re: QTcpSocket write вылетает Отправлено: alexis031182 от Февраль 27, 2013, 15:51 Натурально сегфолт на серверной части ловите. А вообще, если уж обращаетесь за помощью в сообщество, готовьтесь к публикации исходников в известной степени. Поверьте, здесь многие собаку съели на сетях (при этом не имею в виду лично себя), поэтому шифроваться смысла особого нет. "Мы - гхуские, не обманываем друг друга" (Брат 2). Ну и конечно, чтобы получить реальную помощь, имеет смысл потрудиться для генерации минимального кода, воспроизводящего проблему.
Название: Re: QTcpSocket write вылетает Отправлено: xokc от Февраль 27, 2013, 16:55 Ошибки нет никакой, я же говорю, что сервер просто вылетает. Как-то взаимоисключающее звучит.Название: Re: QTcpSocket write вылетает Отправлено: Bepec от Февраль 27, 2013, 17:48 Скорее всего сегфолт происходит из-за несинхронизированных потоков :)
У вас отправка мутексами защищена, или вы просто дёргаете метод объекта? Название: Re: QTcpSocket write вылетает Отправлено: mr.zhelez от Февраль 27, 2013, 18:06 Скорее всего сегфолт происходит из-за несинхронизированных потоков :) просто дергаю метод объекта. И что за мутексы?У вас отправка мутексами защищена, или вы просто дёргаете метод объекта? Название: Re: QTcpSocket write вылетает Отправлено: Bepec от Февраль 27, 2013, 18:45 А как вы думаете, что произойдёт когда два потока дёрнут один объект? :)
Название: Re: QTcpSocket write вылетает Отправлено: mr.zhelez от Февраль 27, 2013, 19:15 А как вы думаете, что произойдёт когда два потока дёрнут один объект? :) Так ведь не два же...из главного потока, в котором окно и сервер я дергаю объект класса connection в другом потоке, который для связи с клиентом. Один поток дергает другой :) Ну а если там что то не так, то что вы там про защиту мутексами говорили?Название: Re: QTcpSocket write вылетает Отправлено: Bepec от Февраль 27, 2013, 19:19 Ну как бы мутексы блокируют участок кода и дают его выполнять одновременно только одному потоку. Второй в это время будет ждать )
А так советую почитать про межпоточное взаимодействие. Хотя точно ответить без приведения вами кода невозможно. Слишком много "факторов". PS я сам про взаимодействие потоков понял только после недели мучений. |