![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Гость_Slon_* |
![]()
Сообщение
#1
|
Гости ![]() |
Нужна срочно помощь по написанию сервер-клиент приложения, нада чтоб с клиента передавался запрос (стринг) и от того что в стринге сервер отсылает ответ...
читаю на сервере при входящем соединении
дебаг пишет Size 1 65196 Size 2 65196 df 0 Size 3 65196 с клиента пишу :
где Server_cast_Thread:
дебаг видает размер 61453 block вроде правильно отравляется.. запись вызываю с tcpSocket SIGNAL(connected()); Пытался на сервере конект функции чтения сделать от сигнала readReady(); Не вызывается вообще ничего в результати, если я понял даные с клиента просто не доходят до сервера, так как при поступлении даных сразу появляеться сигнал readReady(); Подскажите как организовать отсилку запроса из клиента серверу... Куда копать... Заранее спасибо |
|
|
ViGOur |
![]()
Сообщение
#2
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
Как я понимаю ты за основу взял: Fortune Server и Fortune Client.
Если глянуть в пример клиента, то как он готовится к получению данных, то waitForReadyRead ты не увидишь, так как данная функция используется в синхронном режиме работы с сокетами, а по умолчанию в Qt используется асинхронная модель работы с сокетами. Клиент в меcто этого подготавливается к получению данных связывая сигнал readyRead со слотом readFortune, в котором уже и принимает отправленные сервером данные.
|
|
|
Гость_Slon_* |
![]()
Сообщение
#3
|
Гости ![]() |
Я пытаюсь при установлении соединения сразу писать в поток к серверу, а клиент ждет от сервера даные как только чтото появляеться, вызываеться функция чтения , что не так?
|
|
|
ViGOur |
![]()
Сообщение
#4
|
![]() Мастер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: ![]() ![]() ![]() |
Судя по использованию функции waitForReadyRead не как только что-то появляется.
Используй сигналы и слоты для ожидания поступления новых данных... Просто ты скрещиваешь синхронную и асинхронные модели... Цитата bool QAbstractSocket::waitForReadyRead ( int msecs = 30000 ) [virtual]
This function blocks until data is available for reading and the readyRead() signal has been emitted. The function will timeout after msecs milliseconds; the default timeout is 30000 milliseconds. The function returns true if the readyRead() signal is emitted and there is data available for reading; otherwise it returns false (if an error occurred or the operation timed out). |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 15.7.2025, 15:58 |