![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
belirafor |
![]() ![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 9.12.2011 Пользователь №: 3051 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Здравствуйте, уважаемые у частники форума. Пишу контрольную работу "Клиент-сервер". Суть проблемы:
Очищаются они потому, что я использую tcpSocket->close() и на сервере и на клиенте после выполнения приема/передачи данных. Если же я не использую tcpSocket->close(), то получается:
Подскажите, как сделать так, чтобы клиент не повисал после запуска. В общем как мне обойтись без tcpSocket->close() после передачи данных. Поскольку мне нужно выводить информацию о подключаемых клиентах на сервере. А если буду каждый раз инициировать соединение со стороны клиента, тогда будет путаница. Скажу сразу - я плохо разбираюсь в программировании, в силу того что не работаю по специальности (а с сокетами вообще никогда не имел дела). Посмотреть примеры из Qt creator не предлагайте. Смотрел много раз Threaded Fortune Server Example и Client Example. Ниже привожу код клиента и сервера, а так же ссылку на Cyberforum, где расположена моя тема
Заранее, спасибо. |
|
|
belirafor |
![]() ![]()
Сообщение
#2
|
Новичок Группа: Новичок Сообщений: 3 Регистрация: 9.12.2011 Пользователь №: 3051 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Тут вообще, кто-нибудь обитает?
|
|
|
ssoft |
![]()
Сообщение
#3
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 130 Регистрация: 17.2.2010 Из: Москва Пользователь №: 1470 Спасибо сказали: 30 раз(а) Репутация: ![]() ![]() ![]() |
Тут вообще, кто-нибудь обитает? Иногда ))). Проблема , в том, что Вы исользуете waitForReadyRead() - метод, который останавливает основной поток и соотвно графическое отображение таблицы. Нужно у MainWindow завести slot, например, onSocketRead(), связать его с сокетом
и перенести функционал по считыванию данных туда, и никаких waitForReadyRead(). С множеством клиентов немного посложнее. Я бы для каждого подключения организовал свой class ServerDelegate : public QObject; в котором бы реализовал логику клиент-серверного взаимодействия со стороны клиента. |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 8.7.2025, 10:58 |