@ProCxx

Страница 2295 из 2477
Dshk :)
23.08.2018
14:49:25
Всем привет) Вопрос такой, может кто-то натыкался на удобно собранную инфу по паттернам проектирования? В идеале в формате плюсы/минусы. Чтобы, например, знать какой конкретно паттерн лучше использовать, если есть ограничения по памяти или ресурсам, а какой в этом случае, наоборот лучше не использовать

Dshk :)
23.08.2018
14:51:24
А в какой?

Google
Alexander
23.08.2018
14:51:44
Dshk :)
23.08.2018
14:52:09
@pro_prog
Спасибо большое)

Ned Ogl
23.08.2018
16:23:28
Друзья-товарищи, подскажите, пожалуйста. Есть два хоста соединённые ethernet кабелем. На обоих рандомные сетевые настройки, они заведомо не в одной подсети. Как сделать так, чтобы они смогли пообщаться?

Ruslan
23.08.2018
16:24:09
перевести в одну подсеть

Ned Ogl
23.08.2018
16:24:18
Нет такой возможности

речь о каком-то глобальном широковещании

Ruslan
23.08.2018
16:24:42
выставив автонастройки сети и там и сям

Ned Ogl
23.08.2018
16:24:49
один должен широковещать, а второй - слушать и отвечать на этот пакет

один из девайсов - мой комп/ноут/итд

второй - чёрный ящик

поскольку я проектирую этот чёрный ящик, я хочу оставить себе такую лазейку

Ruslan
23.08.2018
16:25:41
ноут-то перевести в эту же подсеть можно

Google
Ned Ogl
23.08.2018
16:25:43
как это реализовать?

ну вот стоит мой чёрный ящик на объекте в поле, я пришёл к нему подцепиться. ОТКУДА Я БУДУ ЗНАТЬ ЕГО ПОДСЕТЬ?

Ruslan
23.08.2018
16:26:16
пффф

Ned Ogl
23.08.2018
16:26:28
с большой вероятностью буду, да, но если нет?

любой вариант с переменой настроек на одном из хостов - исключён

нужно послать броадкаст пакет

куда и как его слать?

Ruslan
23.08.2018
16:27:35
броадкаст на то и броадкаст, что у него нет дестинейшена

включашеь вайршарк

и ловишь поцкетики

Ned Ogl
23.08.2018
16:28:22
отставить

пакетики никуда не идут

Ruslan
23.08.2018
16:29:08
сам же сказал - кабель есть

раз есть кабель, то траффик будет

У нас на дебажной железке было так - есть ренж адресов

На тестовой хероте адрес выбирался из ренжа

т.е. почти хардкод (опциями/конфигом)

с ноута можно было подключится к железяке, если добавить IP интерфейс из того же ренжа в настройки системы

сканишь порты в ренже и тот, который живой берешь

ну, либо пингуешь на броадкаст адрес

Google
Ruslan
23.08.2018
16:41:05
хз насколько это корректно отрабатывает - не юзал никогда толком

Ned Ogl
23.08.2018
16:41:08
я не могу отловить этот броадкаст как раз

как поймать броадкаст-пакет в локалке?

Ruslan
23.08.2018
16:41:48
поймать?

он дальше стека врятли пойдет

это где-то L3 уровень, наверное

рядом с ARP/IP/etc

Ned Ogl
23.08.2018
16:43:03
мне надо поймать IP-пакет по сути

Ruslan
23.08.2018
16:43:18
нет

это не IP еще

насколько я помню

вощем, подампи таки вайршарком сейчас

мне кажется это L2 пакет, который терминируется в ICMP компоненте

стека

Что-то мне подсказывает, что выше ICMP не проходит такое

Ну, то ICMP есть броадкаст - это по сути Ethernet broadcast

только пейлоад там в виде ICMP пакетика

Ned Ogl
23.08.2018
16:47:08
вощем, подампи таки вайршарком сейчас
да мне нет смысла дампить, я имею доступ к этой железке

я хочу как раз реализовать это взаимодействие

Google
Ned Ogl
23.08.2018
16:47:29
программа на десктопе + демон на устройстве

Ruslan
23.08.2018
16:47:41
Дак, у тебя ниже IP нет уровня же

Ned Ogl
23.08.2018
16:47:47
чтобы программа слала броадкастом пакет, устройство ловило и отвечало своими настройками

Ruslan
23.08.2018
16:47:49
доступа к стеку нет?

Ned Ogl
23.08.2018
16:47:51
нет

Ruslan
23.08.2018
16:48:05
может тебе тупо DHCP поднять?

на железке:)

Ned Ogl
23.08.2018
16:48:09
речь идёт о том, как поймать IP-бродкаст

Ruslan
23.08.2018
16:48:14
или клиент

Ned Ogl
23.08.2018
16:48:16
тоже нерезонно

железка - наш продукт, она стоит у заказчика со своим статическим IP, отвечает ему на всю хуйню, итд

Ruslan
23.08.2018
16:49:01
https://stackoverflow.com/questions/8290046/icmp-sockets-linux

Ned Ogl
23.08.2018
16:49:03
я вот такой приехал и не хочу спрашивать у заказчика настройки

Ruslan
23.08.2018
16:49:07
такое штоли надо тебе?

https://github.com/octo/liboping

??
23.08.2018
16:52:28
как выполнять цикл в течении 1 секунды?

Ruslan
23.08.2018
16:56:06
Недолго

Igor
23.08.2018
17:04:38
как выполнять цикл в течении 1 секунды?
Замеряя моменты времени с помощью std::chrono::system_clock::now()

Ned Ogl
23.08.2018
17:10:27
Google
Ned Ogl
23.08.2018
17:10:30
пинг не проходит

Ned Ogl
23.08.2018
17:11:56
Ты чатом ошибся. Здесь C++, а не сети.
а вопрос именно в реализации этой хрени через С++ сокеты

если что

Max
23.08.2018
17:19:23
а вопрос именно в реализации этой хрени через С++ сокеты
Ну, открываешь raw-сокеты с обеих сторон, и общаешься. Или в чём вопрос?

Ned Ogl
23.08.2018
17:19:48
Max
23.08.2018
17:25:07
хорошо, а какого уровня эта история?
Канального. Можешь формировать ethernet-фрейм, или не-ethernet, как хочешь.

Ruslan
23.08.2018
17:26:06
Max
23.08.2018
17:27:13
хорошо, а какого уровня эта история?
Не забудь, что так как нет уникального адресата, то эти данные получат все, кто слушает. Если будут >2 абонентов, то придётся как-то разруливать синхронизацию.

так же подозреваю, что будут проблемы с маршрутизаторами и излишне умными свитчами. Но я не проверял.

Ned Ogl
23.08.2018
17:29:02
Проходит
не проходит он никуда. я в другой подсети, девайс не пингуется

при этом если адрес шлюз нулями забить, Network Unreachable

я вот не понимаю, почему это не решается UDP-сокетами на одном и том же порту

Страница 2295 из 2477