crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Поблема с записью в сокет
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
vaansk Дата 15.10.2013, 21:44
  как вручную разбивать на пакеты?
Iron Bug Дата 15.10.2013, 20:54
  это может быть системным ограничением. например, в венде по умолчанию 5 секунд на пакет. меняется это значение в реестре:
http://support.microsoft.com/kb/170359
вообще, большие пакеты не есть хорошо: они тормозят работу всей системы.
AD Дата 15.10.2013, 20:44
 
Цитата(vaansk @ 15.10.2013, 21:39) *
tcp, не broadcast

А какую ошибку выдает? Попробуйте посмотреть ошибку сокета, что выдал QTcpSocket.
vaansk Дата 15.10.2013, 20:39
  tcp, не broadcast
AD Дата 15.10.2013, 19:55
  Сокет UDP или TCP? Передача broadcast или нет? Поподробнее опишите проблему.
vaansk Дата 15.10.2013, 19:50
  опечатался, естественно

if (!clientSocket->waitForBytesWritten())
{...
vaansk Дата 15.10.2013, 16:18
  Добрый день, есть QbyteArray, который я пытаюсь передать по сокету:

Серверная часть:
  QbyteArray sbuff;
  ...
  clientSocket->write(sbuff, sbuff.size());
  if (clientSocket->waitForBytesWritten())
  {
    qDebug() << "Time Limit";
  }


При этом sbuff.size() равен примерно 22000 и всегда процесс приходит в Time Limit, как бы я не изменял параметр в скобках waitForBytesWritten()
По идее 22000 не так уж и много, может нужно как-то по другому записывать?

Если кидаю маленькие sbuff, то все нормально доходит и клиент принимает.

Вот прием клиента:
QByteArray recvbuff = socket->readAll();


Прошу помощи
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 16.4.2024, 17:54