|
Многопоточность
|
|||
---|---|---|---|
#18+
Приветствую! Такой вопрос: хочу пропинговать ту, или иную подсеть и найти все свободные ипы. Вопрос во времени, если все пускать одним циклом в одном потоке, то все будет долго. Если я буду каждый пинг пускать в отдельном потоке, 253 потока, это же не знаю как назвать:) Или как в таких случаях делают? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2016, 16:57 |
|
Многопоточность
|
|||
---|---|---|---|
#18+
Потоки не нужны, просто создается 253 сокета, и пингуют они асинхронно. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2016, 17:04 |
|
Многопоточность
|
|||
---|---|---|---|
#18+
Впрочем, 253 это возможно многовато, я в такой ситуации, уже не помню почему, открывал 30, и по мере освобождения подсовывал им следующие адреса из очереди. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2016, 17:07 |
|
Многопоточность
|
|||
---|---|---|---|
#18+
mishanya3624хочу пропинговать ту, или иную подсеть и найти все свободные ипы.отсутствие ответа на ICMP запрос - не означает, что адрес свободен ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2016, 17:16 |
|
Многопоточность
|
|||
---|---|---|---|
#18+
Изопропил, да, все верно, я чтобы понять принцип, как в таких ситуациях быть. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2016, 17:24 |
|
Многопоточность
|
|||
---|---|---|---|
#18+
вообще в 1 сети может быть больше 253 адресов :) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2016, 18:01 |
|
Многопоточность
|
|||
---|---|---|---|
#18+
mishanya3624да, все верно, я чтобы понять принцип, как в таких ситуациях быть.Использовать ARP протокол. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2016, 18:13 |
|
Многопоточность
|
|||
---|---|---|---|
#18+
Алексей К, не, тут весь цЫнус в изучении c#:) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2016, 18:13 |
|
Многопоточность
|
|||
---|---|---|---|
#18+
mishanya3624Алексей К, не, тут весь цЫнус в изучении c#:)Тогда в дополнение к C# придётся изучить Using the Address Resolution Protocol и .Net PInvoke Тут есть примеры. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2016, 18:20 |
|
Многопоточность
|
|||
---|---|---|---|
#18+
mishanya3624цЫнус Цимес ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2016, 21:43 |
|
Многопоточность
|
|||
---|---|---|---|
#18+
Изопропилmishanya3624цЫнус Цимесцимес + анус = цынус ... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2016, 22:42 |
|
Многопоточность
|
|||
---|---|---|---|
#18+
Алексей Кmishanya3624да, все верно, я чтобы понять принцип, как в таких ситуациях быть.Использовать ARP протокол. Нет в Мире совершенства Для работы через ARP используется вызов [DllImport("iphlpapi.dll", ExactSpelling = true)] Пример http://stackoverflow.com/questions/1148778/how-do-i-access-arp-protocol-information-through-net Прикол в том, что это работает ТОЛЬКО внутри одной сети. У меня сетей, как у дурака фантиков. Наверное я что-то не понимаю или не знаю, но MAC- адрес, а следовательно подтверждение соединения по сети с удаленным компом можно получит выполнив команду NBTSTAT. Я не понимаю, как она работает. Был бы признателен, если бы кто объяснил. Для определения работы компа в сети можно попробовать открыть порт 137/udp, который используется NBTSTAT. Обычно он открыт. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2016, 08:59 |
|
Многопоточность
|
|||
---|---|---|---|
#18+
Cat2Прикол в том, что это работает ТОЛЬКО внутри одной сети.ТС вроде как именно этого и хотел. Cat2Для определения работы компа в сети можно попробовать открыть порт 137/udp, который используется NBTSTAT. Обычно он открыт.Открыть можно любой порт и попытаться к нему подсоединиться. Но гарантий открытости порта никаких. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2016, 09:40 |
|
Многопоточность
|
|||
---|---|---|---|
#18+
Еще раз огромное спасибо мемберу Изоприл, только благодаря его ценным указаниям мне удалось сделать этот пример по ограничению одновременно выполняемых потоков. См. Непонятная ошибка по границам массива Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47.
Наверное это не лучшее решение, но хоть так ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2016, 09:51 |
|
Многопоточность
|
|||
---|---|---|---|
#18+
Алексей КCat2Прикол в том, что это работает ТОЛЬКО внутри одной сети.ТС вроде как именно этого и хотел. Cat2Для определения работы компа в сети можно попробовать открыть порт 137/udp, который используется NBTSTAT. Обычно он открыт.Открыть можно любой порт и попытаться к нему подсоединиться. Но гарантий открытости порта никаких. Гарантии открытости порта дает руководство, специальным приказом В минуты отчаяния, когда ничего не получается, я мечтаю о том, что можно бы было работать в маленькой компании, где всего 10 000 компов и все они включены в одну сеть ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2016, 10:19 |
|
Многопоточность
|
|||
---|---|---|---|
#18+
mishanya3624Или как в таких случаях делают? В таких случаях через жопу не делают вообще. Либо подними DHCP сервер и пусть он раздает IP, либо напиши регламент кому какой IP можно выдать и кто должен вести учет, а в случае задвоения наказывай рублем того кто выдал два одинаковых IP. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2016, 20:28 |
|
Многопоточность
|
|||
---|---|---|---|
#18+
Dima T, регламент всё равно нужно писать для DHCP сервера ... |
|||
:
Нравится:
Не нравится:
|
|||
19.06.2016, 20:55 |
|
Многопоточность
|
|||
---|---|---|---|
#18+
Да нет комрады, внутри сети все отлично настроено и работает. Еще раз, разбираюсь с C# в свободное от работы время и на разных примерах,в основном, которые сам для себя придумываю и изучаю потихоньку. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2016, 10:40 |
|
Многопоточность
|
|||
---|---|---|---|
#18+
Несколько вопросов: 1. Как дождаться окончания всех асинхронных процессов, чтобы не создавать второй поток и делать ему Sleep? 2. Как сделать сортировку по возрастанию, сохранить все адреса в List и из него уже сделать выборку по возрастанию, что-то не получается... Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59.
Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2016, 12:54 |
|
Многопоточность
|
|||
---|---|---|---|
#18+
mishanya3624Еще раз, разбираюсь с C# в свободное от работы время и на разных примерах,в основном, которые сам для себя придумываю и изучаю потихоньку. Почитай лучше книжку какую-нибудь, где примеры уже придуманы и тщательно разобраны. Например Рихтера ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2016, 13:04 |
|
Многопоточность
|
|||
---|---|---|---|
#18+
mishanya36241. Как дождаться окончания всех асинхронных процессов, чтобы не создавать второй поток и делать ему Sleep? Что-то типа этого https://msdn.microsoft.com/en-us/library/dd270695(v=vs.110).aspx или этого https://msdn.microsoft.com/en-us/library/system.threading.tasks.task.whenall(v=vs.110).aspx И ещё http://stackoverflow.com/questions/6123406/waitall-vs-whenall Хотя TaskEx, по-поему, это что-то типа устаревшего расширения, выходившего, пока новая версия .NET не вышла (поправьте, если я неправ) - теперь всё через один класс Task делается. А вообще, вот хорошая серия статей из книги Альбахари http://www.albahari.com/threading/ ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2016, 20:16 |
|
Многопоточность
|
|||
---|---|---|---|
#18+
mishanya3624Изопропил, да, все верно, я чтобы понять принцип, как в таких ситуациях быть. А что, какие-то проблемы возникли? Ничего не пингуется? Вас пугает само число потоков? В дотнете последних версий их можно десятки тысяч создавать. Вы хотите ограничить число потоков, одновременно пингующих? - Попробуйте Semaphore . ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2016, 09:35 |
|
Многопоточность
|
|||
---|---|---|---|
#18+
Dude42В дотнете последних версий их можно десятки тысяч создавать. дожили. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2016, 10:03 |
|
Многопоточность
|
|||
---|---|---|---|
#18+
ИзопропилDude42В дотнете последних версий их можно десятки тысяч создавать. дожили. Я имел ввиду что-то типа этого http://stackoverflow.com/a/145323/5015385 А то непонятно, почему человек стесняется создавать потоки. Вроде, пока с какой-то проблемой, связанной с этим, не столкнулся, но уже заранее стесняется. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2016, 19:15 |
|
|
start [/forum/topic.php?fid=20&fpage=59&tid=1400496]: |
0ms |
get settings: |
12ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
others: | 254ms |
total: | 387ms |
0 / 0 |