Название: TcpClient Read/Write Отправлено: demaker от Август 06, 2017, 12:02 Скажите приемлемо ли написаны функции:
запись запроса(writeReq) и чтения ответа(readAnswer(char *data, int size)) Код
Название: Re: TcpClient Read/Write Отправлено: sergek от Август 06, 2017, 13:34 Код: length = QTcpSocket::write(buf, length); Код: timeoutRead = (async)? 500 : 10000; Название: Re: TcpClient Read/Write Отправлено: demaker от Август 06, 2017, 21:03 Код: length = QTcpSocket::write(buf, length); Код: timeoutRead = (async)? 500 : 10000; Код: length = QTcpSocket::write(buf, length); Код: timeoutRead = (async)? 500 : 10000; байт и затем считаем. Я правильно Вас понял? Название: Re: TcpClient Read/Write Отправлено: sergek от Август 06, 2017, 21:54 Здесь вы хотите сказать, что в любом случае весь буфер запишется. Да, но может, не сразу - сокет буферизуется. Если не ошибаюсь, вы можете добавить вызов waitForBytesWritten, чтобы убедиться, что данные ушли.2.А здесь мы будем ожидать до тех пор пока в буфере драйвера не накопится нужное количество Да.байт и затем считаем. Название: Re: TcpClient Read/Write Отправлено: demaker от Август 06, 2017, 22:48 Здесь вы хотите сказать, что в любом случае весь буфер запишется. Да, но может, не сразу - сокет буферизуется. Если не ошибаюсь, вы можете добавить вызов waitForBytesWritten, чтобы убедиться, что данные ушли.2.А здесь мы будем ожидать до тех пор пока в буфере драйвера не накопится нужное количество Да.байт и затем считаем. Тогда вопрос. А что у меня было изначально некорректно? ::) Название: Re: TcpClient Read/Write Отправлено: qate от Август 07, 2017, 09:06 А что у меня было изначально некорректно? ::) лишние телодвижения по записи в сокет и неполные проверки кода возврата если уж хочется так делать waitForBytesWritten не написано что гарантирует уход данных в канал, но только в сокет и смысл её использовать нет при чтении также не нужно ждать в цикле - есть же события, по приходу данных Название: Re: TcpClient Read/Write Отправлено: demaker от Август 07, 2017, 09:07 А что у меня было изначально некорректно? ::) лишние телодвижения по записи в сокет и неполные проверки кода возврата если уж хочется так делать waitForBytesWritten не написано что гарантирует уход данных в канал, но только в сокет и смысл её использовать нет при чтении также не нужно ждать в цикле - есть же события, по приходу данных Логично. Спасибо. |