Форум: "Сети";
Текущий архив: 2004.09.12;
Скачать: [xml.tar.bz2];
ВнизСокет на Win API Найти похожие ветки
← →
atruhin © (2004-06-18 08:53) [0]Сокет в блокирующем режиме. Вызыв Send возвращает кол-во отправленных байт.
Len := Send(FSocket,FOutData[1],length(FOutData),0);
if Len = SOCKET_ERROR then break;
ВОПРОС: есть ли гарантия что эти байты получены адресатом?
← →
Григорьев Антон © (2004-06-18 09:03) [1]Нет. Есть гарантия только того, что байты поставлены в очередь на отправку. См., например, http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1021
← →
atruhin © (2004-06-18 09:42) [2]Спасибо. А то возникла мысь не зря ли шлю подтверждения приема.
← →
lancoder (2004-07-03 03:29) [3]А как послать подтверждение приёма?
← →
Polevi © (2004-07-03 11:20) [4]send
← →
lancoder (2004-07-03 16:31) [5]send, к сожалению, не показывает количество отправленых байт, а показывает кол-во байт положенных в буфер сокета.
← →
Polevi © (2004-07-04 19:22) [6]все пропало
← →
VID © (2004-07-04 20:48) [7]lancoder, ты вызвал send. Твои данные будут сначала отправлены в буфер. Потом они ЛИБО дойдут до адресата, ЛИБО ты получишь ошибку (пусть и не сразу, а через время которое в TCP-настройках твоей ОС указано как макс. допустимый период ожидания ответа от получателя - ведь TCP/IP протокол сам реализует эту фичу - оповещении о получении данных). Другого не дано. Так что считаю оповещение получателем о получении данных излишним.
Если я в чём-то ошибся, буду рад корректировкам (только не таким пессимистичным как у Polevi © (04.07.04 19:22) [6])
← →
Григорьев Антон © (2004-07-05 08:03) [8]
> VID © (04.07.04 20:48) [7]
> Так что считаю оповещение получателем о получении данных
> излишним.
Не всегда. Иногда дополнительное подтверждение показывает, что удалённая сторона не только получила пакет, но и опознала его как допустимый в рамках выбранного протокола. Для создания действительно надёжных протоклов это, ИМХО, необходимо.
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2004.09.12;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.03 c