crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Поблема с записью в сокет
vaansk
  опции профиля:
сообщение 15.10.2013, 16:18
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 19
Регистрация: 5.10.2013
Пользователь №: 3944

Спасибо сказали: 0 раз(а)




Репутация:   0  


Добрый день, есть 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();


Прошу помощи
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
vaansk
  опции профиля:
сообщение 15.10.2013, 19:50
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 19
Регистрация: 5.10.2013
Пользователь №: 3944

Спасибо сказали: 0 раз(а)




Репутация:   0  


опечатался, естественно

if (!clientSocket->waitForBytesWritten())
{...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 15.10.2013, 19:55
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 65 раз(а)




Репутация:   17  


Сокет UDP или TCP? Передача broadcast или нет? Поподробнее опишите проблему.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
vaansk
  опции профиля:
сообщение 15.10.2013, 20:39
Сообщение #4


Студент
*

Группа: Участник
Сообщений: 19
Регистрация: 5.10.2013
Пользователь №: 3944

Спасибо сказали: 0 раз(а)




Репутация:   0  


tcp, не broadcast
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 15.10.2013, 20:44
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 65 раз(а)




Репутация:   17  


Цитата(vaansk @ 15.10.2013, 21:39) *
tcp, не broadcast

А какую ошибку выдает? Попробуйте посмотреть ошибку сокета, что выдал QTcpSocket.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 15.10.2013, 20:54
Сообщение #6


Профессионал
*****

Группа: Модератор
Сообщений: 1569
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 211 раз(а)




Репутация:   12  


это может быть системным ограничением. например, в венде по умолчанию 5 секунд на пакет. меняется это значение в реестре:
http://support.microsoft.com/kb/170359
вообще, большие пакеты не есть хорошо: они тормозят работу всей системы.

Сообщение отредактировал Iron Bug - 15.10.2013, 20:55
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
vaansk
  опции профиля:
сообщение 15.10.2013, 21:44
Сообщение #7


Студент
*

Группа: Участник
Сообщений: 19
Регистрация: 5.10.2013
Пользователь №: 3944

Спасибо сказали: 0 раз(а)




Репутация:   0  


как вручную разбивать на пакеты?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 17.7.2018, 4:25