Форум программистов, компьютерный форум, киберфорум
C++: Сети
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/34: Рейтинг темы: голосов - 34, средняя оценка - 4.65
9 / 9 / 0
Регистрация: 10.11.2011
Сообщений: 241
1

udp socket

13.03.2012, 23:52. Показов 6943. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вобщем Как узнать что udp порт открыт? tcp обязан ответить на соединение, но udp не принимает соединение, и по моему он не обязан отвечать. Как же работают сканеры udp портов? Поделитесь опытом.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.03.2012, 23:52
Ответы с готовыми решениями:

UDP Socket рассылка
Привет всем! :D я хочу сделать рассылку на разные IP вот тока не приходит в голову кроме этого...

Udp: socket не коннектится
Есть программа, которая использует upd сокеты для передачи данных. Эти сокеты биндятся ко всем...

Udp socket
Udp socket. Можете немного объяснить как он работает?В интернете и на оф сайте почитал,но понял...

Программирование Udp socket в билдере
не работает сторчка ресивлн виснит там if (WSAStartup(0x0101, &wsa_data) ||...

7
19 / 11 / 0
Регистрация: 02.09.2010
Сообщений: 235
14.03.2012, 00:54 2
Без ответа помоему никак. Протокол UDP не гарантирует доставку пакета, в нем нет проверки на доставку, и потому в рамках его самого (протокола) не проверить открыт ли порт.
Когда вы вызываете функцию cpnnect - она лишь связывает сокет за определенным адресом и после этой операции будет принимать пакеты только от него. Чисто физически такого соединения, как в случае с tcp, не устанавливается.
Нужно чтобы сервер при получении UDP пакета (или вообще точка, которую вы проверяете) как-то реагировал. Например при приходе такого пакета отправляла отправителю ответный UDP пакет.
Насчет сканеров думаю нужно отснифферить, они наверно шлют пинги и всякую хрень и слушают приходит ли что-то в ответ.
Если я неправ, отпишитесь, самому интересно
0
9 / 9 / 0
Регистрация: 10.11.2011
Сообщений: 241
14.03.2012, 01:50  [ТС] 3
Цитата Сообщение от Damaks Посмотреть сообщение
Насчет сканеров думаю нужно отснифферить, они наверно шлют пинги и всякую хрень и слушают приходит ли что-то в ответ.
Это кстате вариант.
Вот к примеру один из сканеров XSpider нашёл на "zaycev.net" 123 udp порт. Но как я не пыдался туда что-то послать в ответ ничего не приходит. Вот тут я и задумался как же так, если мне ничего в ответ не приходит как же тогда эта чудо программа это понимает? Порылся на вики в разделе udp но там тоже ничего нет. А вот насчёт пинга это очень даже вероятно т.к. тот же XSpider сканирует 3 tcp порта за пару секунд, а на 3 udp уходит секунд 10. Это тоже заставило задуматся.
Я тоже думал запастись снифером, но не знаю каким. Подскажи какой лучше?
0
204 / 205 / 16
Регистрация: 06.08.2011
Сообщений: 600
Записей в блоге: 1
14.03.2012, 10:12 4
открыть сокет, (socket)
"соеденить" с указанным адресом (connect)
послать данные (проверить ошибку)
принять данные (проверить ошибку)

по идее в случае невалидности порта ICMP пришлет соответствующий пакет, который на присоединенном сокете отразится ошибкой на операции. ошибка ECONNREFUSED.

Этот вариант работает для случая если ICMP не перекрыто.
0
9 / 9 / 0
Регистрация: 10.11.2011
Сообщений: 241
14.03.2012, 17:08  [ТС] 5
Цитата Сообщение от villu Посмотреть сообщение
"соеденить" с указанным адресом (connect)
Это как? udp сокет не требует соединения и не отвечает на него.
Цитата Сообщение от villu Посмотреть сообщение
послать данные (проверить ошибку)
Какую ошибку? Из-за отправки даных её помоему впринципе быть не может.
Цитата Сообщение от villu Посмотреть сообщение
принять данные (проверить ошибку)
А если их не кто не отправляет? Это же udp
Цитата Сообщение от villu Посмотреть сообщение
по идее в случае невалидности порта ICMP пришлет соответствующий пакет, который на присоединенном сокете отразится ошибкой на операции. ошибка ECONNREFUSED.
Ну я где-то читал что некоторые ОС если udp порт не занят то отправляют какуюто ошибку в ответ. Но где не пробовал в ответ ничего.
0
204 / 205 / 16
Регистрация: 06.08.2011
Сообщений: 600
Записей в блоге: 1
14.03.2012, 17:20 6
udp сокет не требует соединения и не отвечает на него.
правильно, но в данном случае connect говорит системе, что вот этот конкретный сокет привязан к этому конкретному адресу.
После привязки можно пользоваться send и recv наряду с sendto и recvfrom
а еще в случае присоединенного UDP сокета:
But most importantly, a UDP socket must be connected to receive ICMP errors.
(source) Pp. 748-749 of "TCP/IP Illustrated, Volume 2"
как раз тот самый случай.

Добавлено через 1 минуту
Из-за отправки даных её помоему впринципе быть не может.
не правильно.
0
9 / 9 / 0
Регистрация: 10.11.2011
Сообщений: 241
14.03.2012, 18:18  [ТС] 7
villu, я не знаю о чём вы говорите, я пробовал на локалхосте уже все варианты и некаких ошибок вобще нету. Различий между открытым и закрытым портом просто не нашёл.
0
204 / 205 / 16
Регистрация: 06.08.2011
Сообщений: 600
Записей в блоге: 1
14.03.2012, 20:03 8
Ну у меня такой сценарий работает даже при попытке обратится к неоткрытому порту соседней машины.

А на локалхосте ты всегда можешь "netstat -ban" (-an для linux) вызвать в консоле и посмотреть что открыто и кем открыто.

Еще попытка сделать bind для существующего открытого адреса так же приводит к ошибке.
0
14.03.2012, 20:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.03.2012, 20:03
Помогаю со студенческими работами здесь

Использовать udp socket в com объекте
Я - блондинка, ударившаяся в программирование, которой необходима Ваша помощь, уважаемые знатоки!! ...

Real time на Socket (udp)
Здравствуйте. Не знаю почему, но способ реализации Real time игры всегда остается в "ТАЙНЕ". В гугл...

Socket UDP проверить открыт ли порт
Есть ли возможность сначала проверить открыт ли порт на удаленном сервере, и если открыт, отправить...

udp socket косяки при получении данных
всем привет. использую udpsocket UdpSocket1.Sendln('hello',''); //посылаем...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru