|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.08.2012, 23:46 | #1 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Правильный дисконнект QTcpSocket
Доброго времени суток!
Ситуация такова: имеется приложение, реализующее простой чат, причем приложение может работать как клиентом, так и сервером (предполагается, что клиент может подключиться только один, так что после того, как клиент подключится к серверу, разницы в поведении приложений практически нет). Соответственно, имеется два указателя - на QTcpServer и QTcpSocket, общение в обоих режимах происходит через сокет. Имеется возможность в любой момент времени в любом из режимов произвести дисконнект (нажав на кнопку). Собственно, хотелось бы узнать, как это лучше всего сделать. Есть вариант по нажатию кнопки для сокета вызывать disconnectFromHost, при получении сигнала сокета disconnected вызывать для сокета deleteLater (а если приложение работает в режиме сервера, то заодно вызывать close для сервера). И все вроде бы в этом варианте хорошо, только disconnectFromHost никак не может дойти до высылки сигнала disconnected - очевидно, никак не может закончить прием данных. Видимо, закавыка именно в нем. Привожу код (а-ля Шлее): Код:
1. Правильная ли моя идея дисконнекта (с учетом двух режимов работы приложения), и не упустил ли я чего-то? 2. Правильно ли я грешу на слот чтения сообщения, и если да, то как его исправить до рабочего состояния?
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
02.09.2012, 21:43 | #2 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Проблема не потеряла своей актуальности.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
QTcpSocket получить данный от cisco с 22 порта | _KUL | Qt и кроссплатформенное программирование С/С++ | 6 | 13.07.2012 11:19 |
Правильный треугольник | St1nk3r | Помощь студентам | 12 | 05.11.2011 10:36 |
правильный алгоритм? | Pekus | Помощь студентам | 2 | 19.05.2011 12:26 |
Правильный антивирус. | the_deer_one | Свободное общение | 4 | 25.06.2010 11:32 |
Правильный ли код? | anomals | PHP | 4 | 10.02.2010 14:06 |