Название: Проверка успешной отправки данных через TCP/IP [Решено] Отправлено: Luck от Ноября 21, 2009, 12:51 Я пишу TCP/IP сервер. Он отправляет QByteArray через сокет клиенту. Мне нужно проверить, успешно ли прошла отправка. Кто-нибудь подскажет, как это сделать?
Код:
Название: Re: Проверка успешной отправки данных через TCP/IP Отправлено: BRE от Ноября 21, 2009, 12:58 Я пишу TCP/IP сервер. Он отправляет QByteArray через сокет клиенту. Мне нужно проверить, успешно ли прошла отправка. Кто-нибудь подскажет, как это сделать? Пусть клиент отправит подтверждение о том, что он успешно получил данные.Название: Re: Проверка успешной отправки данных через TCP/IP Отправлено: Luck от Ноября 21, 2009, 13:03 Нет, мне нужна именно проверка отправки.
Название: Re: Проверка успешной отправки данных через TCP/IP Отправлено: BRE от Ноября 21, 2009, 13:05 Нет, мне нужна именно проверка отправки. Так write тебе сообщает сколько байт он действительно записал в сокет или -1 если произошла ошибка.Название: Re: Проверка успешной отправки данных через TCP/IP Отправлено: Luck от Ноября 21, 2009, 13:12 Так write тебе сообщает сколько байт он действительно записал в сокет или -1 если произошла ошибка. т.е. можно сделать так? Код: QByteArray sendP = forSend(); Название: Re: Проверка успешной отправки данных через TCP/IP Отправлено: BRE от Ноября 21, 2009, 13:15 Если write возвращает -1, то это означает ошибку и то что ни одного байта не записалось.
Если возвращает другое число, то это означает сколько байт реально записалось в сокет. Это значение может быть меньше того, которое ты хотел записать и означает, что остальные данные нужно записать позже. В Qt запись в сокет буферизируется, т.е. сама библиотеке будет пытаться записать все данные. Проверяй на -1. Почитай по-больше про сокеты. Название: Re: Проверка успешной отправки данных через TCP/IP Отправлено: Luck от Ноября 21, 2009, 13:16 спасибо
|