<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=383037&amp;view=findpost&amp;p=3370053</guid>
        <pubDate>Mon, 28 Oct 2013 14:26:54 +0000</pubDate>
        <title>Проверка доступности хоста</title>
        <link>https://forum.sources.ru/index.php?showtopic=383037&amp;view=findpost&amp;p=3370053</link>
        <description><![CDATA[ЫукпШ: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=383037&view=findpost&p=3369717'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>neokoder &#064; <time class="tag-quote__quoted-time" datetime="2013-10-28T12:47:57+04:00">28.10.13, 08:47</time></span><div class='quote '>Ну так можно в 10 потоках ждать, если опрос 10 хостов, а можно и в одном все 10 запрjосов. Есть же разница, правильно? :)</div></div><br>
От реализации зависит.<br>
Для данного случая - возможно, что и нет разницы.<br>
---<br>
<strong class='tag-b'>xbarmaglot</strong> упомянул о &quot;своих&quot; железках.<br>
Это значит, что реализовывать ping вовсе не обязательно.<br>
Можно организовать обмен пакетами - например, UDP.<br>
И слать в пакете не просто эхо. Гораздо полезнее слать статус.<br>
Кроме того, можно предусмотреть переключаемое состояние &quot;железки&quot;,<br>
при котором она сама (без запроса) раз в указанный период генерит пакет типа &quot;я тута&quot;.<br>
При таких обстоятельствах особая производительность при приёме не нужна.<br>
И без отдельного потока тоже вполне можно обойтись. И без сырых сокетов тоже.<br>
---<br>
Время от времени нужно опрашивать статус сокета селектом и читать по мере необходимости.<br>
Несколько раз подряд не пришла квитанция от какой-либо &quot;железки&quot; - это значит, её нет.]]></description>
        <author>ЫукпШ</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=383037&amp;view=findpost&amp;p=3370035</guid>
        <pubDate>Mon, 28 Oct 2013 14:02:09 +0000</pubDate>
        <title>Проверка доступности хоста</title>
        <link>https://forum.sources.ru/index.php?showtopic=383037&amp;view=findpost&amp;p=3370035</link>
        <description><![CDATA[Oleg2004: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=383037&view=findpost&p=3369717'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>neokoder &#064; <time class="tag-quote__quoted-time" datetime="2013-10-28T08:47:57+00:00">28.10.13, 08:47</time></span><div class='quote '>В чём разные? :) Одно и тоже просто по-разному названо. </div></div><br>
Ну, начнем с того, что синхронных или блокирующих, или асинхронных сокетов - как таковых - не существует в природе. :) <br>
Сокет - в терминологии *nix - это в некотором виде файл - для чтения/записи.<br>
Файлов синхронных-асинхронных не бывает.<br>
И хотя такое название - блокирующий неблокирующий асинхронный - и применяется в сленге - на самом деле это неточность, вошедшая в привычку. Так просто проще говорить-писать :D<br>
Синхронной, неблокирующей или асинхронной - бывает только операция ввода/вывода, которая выполняется с данным сокетом.<br>
Так вот, блокирующая и неблокирующая операции выполняются с помощью одних и тех же блокирующих функций, например connect(), только при неблокирующей операции функция выполняется:<br>
а) в несвойственной для нее обстановке, что обязательно фиксируется передачей управления в программу с помощью возврата с ошибкой (причем конкретной для данной функции)&#33;<br>
б)основная программа таким или иным образом сама ответственна за опрос результата исполнения <br>
По сути в основных ОС нет асинхронных функций, выполняющихся на сокете.<br>
И асинхронный сокет на самом деле это &quot;псевдо асинхронный сокет&quot;<br>
Например в Windows реальными асинхронными функциями являются только функции работы с сетевыми базами данных WSAAsyncGetXbyY, которые к сокетам никаким боком.<br>
Ну вот где-то так :)]]></description>
        <author>Oleg2004</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=383037&amp;view=findpost&amp;p=3369717</guid>
        <pubDate>Mon, 28 Oct 2013 08:47:57 +0000</pubDate>
        <title>Проверка доступности хоста</title>
        <link>https://forum.sources.ru/index.php?showtopic=383037&amp;view=findpost&amp;p=3369717</link>
        <description><![CDATA[neokoder: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=383037&view=findpost&p=3369713'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>ЫукпШ &#064; <time class="tag-quote__quoted-time" datetime="2013-10-28T08:41:22+00:00">28.10.13, 08:41</time></span><div class='quote '>В описании этой функции IcmpSendEcho2<br>
открытым текстом указан T-OUT.</div></div><br>
Что такое T-OUT и где он указан? <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2013-10-28T08:55:54+00:00">28.10.13, 08:55</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=383037&view=findpost&p=3369716'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Oleg2004 &#064; <time class="tag-quote__quoted-time" datetime="2013-10-28T08:45:40+00:00">28.10.13, 08:45</time></span><div class='quote '>По большому счету асинхронные и неблокирующие сокеты - это несколько разные вещи.</div></div><br>
В чём разные?  :) Одно и тоже просто по-разному названо. Кто понимает о чём речь разницы между двумя этими понятиями в данном контексте этой темы делать не будет.  Автор топика использовал слово <em class='tag-i'>асинхронно</em> я его повторил, чтобы ему было понятнее. Но привёл также и второе название в принципе более правильное. <br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2013-10-28T09:02:08+00:00">28.10.13, 09:02</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=383037&view=findpost&p=3369713'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>ЫукпШ &#064; <time class="tag-quote__quoted-time" datetime="2013-10-28T08:41:22+00:00">28.10.13, 08:41</time></span><div class='quote '>Дело в другом - принципиальной необходимости ждать ответа на пакет в течении некоторого времени.</div></div><br>
Ну так можно в 10 потоках ждать, если опрос 10 хостов, а можно и в одном все 10 запрjосов. Есть же разница, правильно? :)]]></description>
        <author>neokoder</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=383037&amp;view=findpost&amp;p=3369716</guid>
        <pubDate>Mon, 28 Oct 2013 08:45:40 +0000</pubDate>
        <title>Проверка доступности хоста</title>
        <link>https://forum.sources.ru/index.php?showtopic=383037&amp;view=findpost&amp;p=3369716</link>
        <description><![CDATA[Oleg2004: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=383037&view=findpost&p=3369684'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>neokoder &#064; <time class="tag-quote__quoted-time" datetime="2013-10-28T07:54:39+00:00">28.10.13, 07:54</time></span><div class='quote '>Об асинхронных (неблокируемых) сокетах автор знает?</div></div><br>
По большому счету асинхронные и неблокирующие сокеты - это несколько разные вещи. :)]]></description>
        <author>Oleg2004</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=383037&amp;view=findpost&amp;p=3369713</guid>
        <pubDate>Mon, 28 Oct 2013 08:41:22 +0000</pubDate>
        <title>Проверка доступности хоста</title>
        <link>https://forum.sources.ru/index.php?showtopic=383037&amp;view=findpost&amp;p=3369713</link>
        <description><![CDATA[ЫукпШ: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Цитата (neokoder @ 44 минуты назад)<br>
Об асинхронных (неблокируемых) сокетах автор знает?<br>
Если необходим именно ping, т.е. ICMP то также делаешь неблокируемый сокет и все дела.<br>
</div></div><br>
Что-то я не до конца видимо понимаю... :(<br>
В описании этой функции IcmpSendEcho2<br>
открытым текстом указан T-OUT. <br>
Это означает, что сокеты используются не блокирующие.<br>
---<br>
Дело в другом - принципиальной необходимости ждать ответа на пакет в течении некоторого времени.]]></description>
        <author>ЫукпШ</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=383037&amp;view=findpost&amp;p=3369684</guid>
        <pubDate>Mon, 28 Oct 2013 07:54:39 +0000</pubDate>
        <title>Проверка доступности хоста</title>
        <link>https://forum.sources.ru/index.php?showtopic=383037&amp;view=findpost&amp;p=3369684</link>
        <description><![CDATA[neokoder: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=383037&view=findpost&p=3369014'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>xbarmaglot &#064; <time class="tag-quote__quoted-time" datetime="2013-10-25T20:58:22+00:00">25.10.13, 20:58</time></span><div class='quote '>Банальная задача: пропинговать хост. Только асинхронно.P.S. Есть железяка. Она может быть выдернута из сети. Нужно периодически ее опрашивать и понимать жива она или нет.Примеры из WinAPI синхроннве. Но это занимает много времени. Заводить отдельные потоки на несколько устройств крутовато...Нужно их периодически опрашивать и понимать отвалились ли они или нет. Поэтому хотелось бы асинхронных вызовов...</div></div><br>
Об асинхронных (неблокируемых) сокетах автор знает?<br>
Если необходим именно ping, т.е. ICMP то также делаешь неблокируемый сокет и все дела.]]></description>
        <author>neokoder</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=383037&amp;view=findpost&amp;p=3369124</guid>
        <pubDate>Sat, 26 Oct 2013 11:32:15 +0000</pubDate>
        <title>Проверка доступности хоста</title>
        <link>https://forum.sources.ru/index.php?showtopic=383037&amp;view=findpost&amp;p=3369124</link>
        <description><![CDATA[Mr.Delphist: Запустить ping.exe как дочерний процесс, его вывод направить к себе и парсить.<br>Ну и да, запускать это вовсе не обязательно в основном потоке - вполне будет жить и через дополнительный.]]></description>
        <author>Mr.Delphist</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=383037&amp;view=findpost&amp;p=3369039</guid>
        <pubDate>Sat, 26 Oct 2013 05:37:33 +0000</pubDate>
        <title>Проверка доступности хоста</title>
        <link>https://forum.sources.ru/index.php?showtopic=383037&amp;view=findpost&amp;p=3369039</link>
        <description><![CDATA[UncleBob: Насколько я понял, автору не с железки надо пинговать, а железку  :whistle:<br><br>Пинг в потоке- не вижу криминала кстати, в любом случае он завершится через несколько секунд либо по приему ответа на пинг, либо по таймауту, сожрав ноль целых хрен десятых системных рксурсов  :whistle:]]></description>
        <author>UncleBob</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=383037&amp;view=findpost&amp;p=3369025</guid>
        <pubDate>Fri, 25 Oct 2013 23:42:09 +0000</pubDate>
        <title>Проверка доступности хоста</title>
        <link>https://forum.sources.ru/index.php?showtopic=383037&amp;view=findpost&amp;p=3369025</link>
        <description><![CDATA[nemez: <strong class='tag-b'>Mr.Delphist</strong><br>
в данном случае абсолютно плевать какая там железка. <br>
Есть винда собственно, и в ней должен быть имплементирован код. <br>
Есть туева хуча примеров пинга на рав сокетах. Но они блокирующие. Это правда. <br>
Автор спрашивает как сделать их неблокирующими, собственно весь гамуз.]]></description>
        <author>nemez</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=383037&amp;view=findpost&amp;p=3369023</guid>
        <pubDate>Fri, 25 Oct 2013 23:09:28 +0000</pubDate>
        <title>Проверка доступности хоста</title>
        <link>https://forum.sources.ru/index.php?showtopic=383037&amp;view=findpost&amp;p=3369023</link>
        <description><![CDATA[Mr.Delphist: Что на железке крутится? Какой софт, какая ось? Можно ли как-то администрировать?]]></description>
        <author>Mr.Delphist</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=383037&amp;view=findpost&amp;p=3369014</guid>
        <pubDate>Fri, 25 Oct 2013 20:58:22 +0000</pubDate>
        <title>Проверка доступности хоста</title>
        <link>https://forum.sources.ru/index.php?showtopic=383037&amp;view=findpost&amp;p=3369014</link>
        <description><![CDATA[xbarmaglot: Банальная задача: пропинговать хост. Только асинхронно.<br><br>P.S. Есть железяка. Она может быть выдернута из сети. Нужно периодически ее опрашивать и понимать жива она или нет.<br>Примеры из WinAPI синхроннве. Но это занимает много времени. Заводить отдельные потоки на несколько устройств крутовато...<br>Нужно их периодически опрашивать и понимать отвалились ли они или нет. Поэтому хотелось бы асинхронных вызовов...]]></description>
        <author>xbarmaglot</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=383037&amp;view=findpost&amp;p=3368989</guid>
        <pubDate>Fri, 25 Oct 2013 18:49:55 +0000</pubDate>
        <title>Проверка доступности хоста</title>
        <link>https://forum.sources.ru/index.php?showtopic=383037&amp;view=findpost&amp;p=3368989</link>
        <description><![CDATA[nemez: <strong class='tag-b'>xbarmaglot</strong><br>
объясни на пальцах чего надо, а то мужики здесь битву экстрасенсов устроили.]]></description>
        <author>nemez</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=383037&amp;view=findpost&amp;p=3368913</guid>
        <pubDate>Fri, 25 Oct 2013 13:42:15 +0000</pubDate>
        <title>Проверка доступности хоста</title>
        <link>https://forum.sources.ru/index.php?showtopic=383037&amp;view=findpost&amp;p=3368913</link>
        <description><![CDATA[Mr.Delphist: Соглашусь с <strong class='tag-b'>UncleBob</strong>. Более того, та сторона может игнорить все запросы, несовпадающие с заданным образцом (если используется UDP или иной connectionless-протокол), дропать ping и прочие ICMP-вещи, т.е. выглядеть как отсутствующая ровно до тех пор как угадаешь с форматом.<br>
<br>
Поэтому, надо бы больше деталей: какая задача решается? в каком контексте нужна проверка доступности?]]></description>
        <author>Mr.Delphist</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=383037&amp;view=findpost&amp;p=3368872</guid>
        <pubDate>Fri, 25 Oct 2013 11:57:20 +0000</pubDate>
        <title>Проверка доступности хоста</title>
        <link>https://forum.sources.ru/index.php?showtopic=383037&amp;view=findpost&amp;p=3368872</link>
        <description><![CDATA[progman: connect на 80й порт и/или 443й если речь про вебсервер идет<br><br>еще ping но тут без гарантии - могут игнорироваться запросы и не слаться ответы.<br>если админ затейник то хост может быть но из вне никак про это не узнать]]></description>
        <author>progman</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=383037&amp;view=findpost&amp;p=3368830</guid>
        <pubDate>Fri, 25 Oct 2013 11:09:35 +0000</pubDate>
        <title>Проверка доступности хоста</title>
        <link>https://forum.sources.ru/index.php?showtopic=383037&amp;view=findpost&amp;p=3368830</link>
        <description><![CDATA[UncleBob: Нету такого понятия, как api хоста. Удаленный хост может выполнять какую-то серверную функцию. Тогда его доступностью можно считать возможность подключения к серверному порту или выполнения какого-то запроса по соответствующему серверному протоколу. Опять же, надо понимать, что путь к удаленному хосту проходит через ряд маршрутизаторов, и невозможность подключения к нему из одной сети не означает, что хост не доступен из других.]]></description>
        <author>UncleBob</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=383037&amp;view=findpost&amp;p=3368829</guid>
        <pubDate>Fri, 25 Oct 2013 11:05:07 +0000</pubDate>
        <title>Проверка доступности хоста</title>
        <link>https://forum.sources.ru/index.php?showtopic=383037&amp;view=findpost&amp;p=3368829</link>
        <description><![CDATA[xbarmaglot: Есть ли какая асинхронная функция проверки доступности удаленного хоста по его api?]]></description>
        <author>xbarmaglot</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      </channel>
      </rss>
	