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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QTcpSocket write вылетает  (Прочитано 4979 раз)
mr.zhelez
Гость
« : Февраль 26, 2013, 21:08 »

У меня есть сервер, который принимает клиентов и каждый работает в отдельном потоке. Приветственное сообщение успешно отправляется. И сообщение от клиентов сервер тоже принимает. Но когда при нажатии на контрол формы вызываю метод, в котором обычный socket->write(...) и ничего более, сервер вылетает. Что за причина может быть? Я проверял, соединение установлено и вообще все в порядке.
Записан
carrygun
Гость
« Ответ #1 : Февраль 27, 2013, 05:21 »

Очевидно же что телепатов тут нет. Нужен код или пример. Что за ошибка? И так далее.
Записан
mr.zhelez
Гость
« Ответ #2 : Февраль 27, 2013, 15:40 »

Очевидно же что телепатов тут нет. Нужен код или пример. Что за ошибка? И так далее.
Ошибки нет никакой, я же говорю, что сервер просто вылетает.

А код не смогу, большой. Если есть желающие помочь то напишите, я покажу...
Записан
alexis031182
Гость
« Ответ #3 : Февраль 27, 2013, 15:51 »

Натурально сегфолт на серверной части ловите. А вообще, если уж обращаетесь за помощью в сообщество, готовьтесь к публикации исходников в известной степени. Поверьте, здесь многие собаку съели на сетях (при этом не имею в виду лично себя), поэтому шифроваться смысла особого нет. "Мы - гхуские, не обманываем друг друга" (Брат 2). Ну и конечно, чтобы получить реальную помощь, имеет смысл потрудиться для генерации минимального кода, воспроизводящего проблему.
Записан
xokc
Птица говорун
*****
Offline Offline

Сообщений: 976



Просмотр профиля
« Ответ #4 : Февраль 27, 2013, 16:55 »

Ошибки нет никакой, я же говорю, что сервер просто вылетает.
Как-то взаимоисключающее звучит.
Записан
Bepec
Гость
« Ответ #5 : Февраль 27, 2013, 17:48 »

Скорее всего сегфолт происходит из-за несинхронизированных потоков Улыбающийся

У вас отправка мутексами защищена, или вы просто дёргаете метод объекта?
Записан
mr.zhelez
Гость
« Ответ #6 : Февраль 27, 2013, 18:06 »

Скорее всего сегфолт происходит из-за несинхронизированных потоков Улыбающийся

У вас отправка мутексами защищена, или вы просто дёргаете метод объекта?
просто дергаю метод объекта. И что за мутексы?
Записан
Bepec
Гость
« Ответ #7 : Февраль 27, 2013, 18:45 »

А как вы думаете, что произойдёт когда два потока дёрнут один объект? Улыбающийся
Записан
mr.zhelez
Гость
« Ответ #8 : Февраль 27, 2013, 19:15 »

А как вы думаете, что произойдёт когда два потока дёрнут один объект? Улыбающийся

Так ведь не два же...из главного потока, в котором окно и сервер я дергаю объект класса connection в другом потоке, который для связи с клиентом. Один поток дергает другой Улыбающийся Ну а если там что то не так, то что вы там про защиту мутексами говорили?
Записан
Bepec
Гость
« Ответ #9 : Февраль 27, 2013, 19:19 »

Ну как бы мутексы блокируют участок кода и дают его выполнять одновременно только одному потоку. Второй в это время будет ждать )

А так советую почитать про межпоточное взаимодействие. Хотя точно ответить без приведения вами кода невозможно. Слишком много "факторов".

PS я сам про взаимодействие потоков понял только после недели мучений.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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