Re[2]: форма подтверждения доставки в UDP
От: Andrew S Россия http://alchemy-lab.com
Дата: 23.12.02 23:17
Оценка: 21 (1)
UDP — протокол _без_ установления соединения и более того — не точка-точка. В нем есть мультикаст. Поэтому принимающий конец тут "отвалиться" не может. Может быть ошибка при фрагментации пакета либо ошибка отсутствия порта. Всё. Но они не входят в сам UDP — это ICMP сообщения. И второе — у меня довольно сильные сомнения, что send, положим, возвратит ошибку при отправке на несуществующий порт. Точнее, уверенность, что не возвратит. Я так сам делаю в реализации traceroute. Т.о. для того, чтобы отловить такую ситуацию — надо принимать ICMP сообщения, что и делается в traceroute. А это требует raw сокетов и админа под NT-2000. И пользуясь только UDP сокетом никак не узнать на уровне UDP, получил ли удаленный хост наше послание.


SCS>есть случай, когда по коммутируемому соединению "точка-точка" проводится попытка передать дейтаграмму, но принимающий конец отвалился — winsock выдаст ошибку WSAESHUTDOWN, WSAECONNRESET и т.п.

Это все применимо к TCP.
http://www.rusyaz.ru/pr — стараемся писАть по-русски
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.