Название: Qt4 Server/Client Отправлено: moroz от Март 09, 2007, 20:59 Непонимаю, что я делаю неправильно. Мой сервер высылает пиксмап и позицию QPoint
Код: void Server::sendToClient() Клиент принимает данные от сервера в слоте Код:
Все работает пока пиксмап вписывается в один блок, но если изменить размер пиксма например 2000x2000, то клиент получает несколько пакетов и тут происходит самое интересное метод bytesAvailable() сообщает, что в сокет содержит данные, но из потока in ничего не считывается тоесть buf.size() после in >> buf >> pt; равно нулю. Но если вызвать из _tcpSocket вызвать метод read(buf, _tcpSocket->bytesAvailable()), то данные можно считать. Я в шоке. Кто-нибудь уже сталкивался с такой проблемой? Что я делаю неправильно? Подскажите пожалуйста Название: Qt4 Server/Client Отправлено: Mixolap от Март 09, 2007, 21:45 bool QIODevice::waitForBytesWritten ( int msecs )
bool QIODevice::waitForReadyRead ( int msecs ) А если добавить в код использование этих функций? Название: Qt4 Server/Client Отправлено: moroz от Март 10, 2007, 12:56 Поставил ожидание на 500мс, результат тот же только медленее
Но, все равно огромное спасибо Название: Qt4 Server/Client Отправлено: Alex03 от Март 10, 2007, 17:06 Для начала поглядите что у Вас возвращает clientSocket->write(block)
Название: Qt4 Server/Client Отправлено: moroz от Март 10, 2007, 19:34 Спасибо за хорошую идею. Этот метод в обоих случаях -1 не возратил, т.е. со стороны сервера все чисто и он честно передает данные в сокет. Только у меня такое чувство, что когда больше двух блоков, появляются проблемы с потоком
Название: Qt4 Server/Client Отправлено: zabivator от Март 13, 2007, 09:54 flush?
|