<?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=412092&amp;view=findpost&amp;p=3770881</guid>
        <pubDate>Fri, 01 Jun 2018 17:10:42 +0000</pubDate>
        <title>Сокет после down / up</title>
        <link>https://forum.sources.ru/index.php?showtopic=412092&amp;view=findpost&amp;p=3770881</link>
        <description><![CDATA[Oleg2004: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412092&view=findpost&p=3770811'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Mr.Delphist &#064; <time class="tag-quote__quoted-time" datetime="2018-05-31T23:25:12+03:00">31.05.18, 20:25</time></span><div class='quote '><br>
А ещё какие-то интерфейсы остаются активными в системе? </div></div><br>
Думаю вопрос останется висеть в воздухе... :) <br>
5 месяцев прошло... :yes:]]></description>
        <author>Oleg2004</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412092&amp;view=findpost&amp;p=3770811</guid>
        <pubDate>Thu, 31 May 2018 20:25:12 +0000</pubDate>
        <title>Сокет после down / up</title>
        <link>https://forum.sources.ru/index.php?showtopic=412092&amp;view=findpost&amp;p=3770811</link>
        <description><![CDATA[Mr.Delphist: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412092&view=findpost&p=3758674'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>HardRock &#064; <time class="tag-quote__quoted-time" datetime="2018-02-02T08:13:02+00:00">02.02.18, 08:13</time></span><div class='quote '>Затем делаю DOWN -&gt; UP на один из интерфейсов (меняю IP адрес интерфейса с опусканием и поднятием). После этого сокет оказывается неработоспособным. </div></div><br>
А ещё какие-то интерфейсы остаются активными в системе?]]></description>
        <author>Mr.Delphist</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412092&amp;view=findpost&amp;p=3759685</guid>
        <pubDate>Thu, 08 Feb 2018 12:11:11 +0000</pubDate>
        <title>Сокет после down / up</title>
        <link>https://forum.sources.ru/index.php?showtopic=412092&amp;view=findpost&amp;p=3759685</link>
        <description><![CDATA[Gonarh: <div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>IP-адрес своей сетевой карты</div></div><br>
 :wall:]]></description>
        <author>Gonarh</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412092&amp;view=findpost&amp;p=3758972</guid>
        <pubDate>Sat, 03 Feb 2018 20:48:34 +0000</pubDate>
        <title>Сокет после down / up</title>
        <link>https://forum.sources.ru/index.php?showtopic=412092&amp;view=findpost&amp;p=3758972</link>
        <description><![CDATA[ЫукпШ: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412092&view=findpost&p=3758674'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>HardRock &#064; <time class="tag-quote__quoted-time" datetime="2018-02-02T08:13:02+00:00">02.02.18, 08:13</time></span><div class='quote '>Затем делаю DOWN -&gt; UP на один из интерфейсов (меняю IP адрес интерфейса с опусканием и поднятием). После этого сокет оказывается неработоспособным.</div></div><br>
А в момент DOWN сокет не чувствует ошибки ?<br>
Поисследуй.<br>
Если &quot;да&quot;, то интенесно, какая ошибка (код) возникает.<br>
---<br>
Значит, если сможем почуять такую ошибку, тогда можно<br>
будет ликвидировать сокет и пытаться создать новый<br>
с некоторой периодичностью до достижения успеха.]]></description>
        <author>ЫукпШ</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412092&amp;view=findpost&amp;p=3758964</guid>
        <pubDate>Sat, 03 Feb 2018 19:54:37 +0000</pubDate>
        <title>Сокет после down / up</title>
        <link>https://forum.sources.ru/index.php?showtopic=412092&amp;view=findpost&amp;p=3758964</link>
        <description><![CDATA[Oleg2004: Кстати, сервер никогда не слушает на INADDR_ANY<br>
Он только биндится на универсальный адрес.<br>
Ну и немного из лекции:<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Функцию bind() обязательно исполнят серверные программы. Чем это объясняется? <br>
Для сервера важно &quot;знать&quot; свой собственный обратный адрес – а именно, IP-адрес своей сетевой карты – и порт, на котором будет осуществляться прием заявок на обслуживание, приходящих  из сети. Поскольку программист при написании программы может знать только порт, например для Веб-сервера – 80-й, то IP-адреса на каком-то хосте он вообще знать не может. А сетевых интерфейсов на серверном хосте может быть много.<br>
Для выхода из положения IP-адрес в структуре адреса сокета может быть задан равным INADDR_ANY или  0 и в том случае, когда хост имеет несколько сетевых интерфейсов. Константа INADDR_ANY называется &quot;универсальным адресом&quot;, с помощью которого ядро системы оповещается о необходимости самостоятельного выбора номера сетевого интерфейса. Если в запросе bind() указывается адрес  ноль или INADDR_ANY, то в структуру адреса автоматически занесется локальный IP-адрес используемого сетевого интерфейса хоста. Если таких несколько на хосте, <strong class='tag-b'>то система использует так наз. предпочтительный интерфейс</strong>. <br>
В ОС Linux, если при вызове bind() было  в адресной структуре сокета было указано значение INADDR_ANY, сокет будет ассоциирован со всеми локальными сетевыми интерфейсами. <strong class='tag-b'> Если в ОС Linux необходимо привязать сокет к конкретному интерфейсу, то следует использовать опцию SO_BINDTODEVICE.</strong> </div></div>]]></description>
        <author>Oleg2004</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412092&amp;view=findpost&amp;p=3758914</guid>
        <pubDate>Sat, 03 Feb 2018 15:46:10 +0000</pubDate>
        <title>Сокет после down / up</title>
        <link>https://forum.sources.ru/index.php?showtopic=412092&amp;view=findpost&amp;p=3758914</link>
        <description><![CDATA[Pacific: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412092&view=findpost&p=3758674'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>HardRock &#064; <time class="tag-quote__quoted-time" datetime="2018-02-02T08:13:02+00:00">02.02.18, 08:13</time></span><div class='quote '>При этом например вебсервер корректно переживает опускание/поднятие интерфейса, т.е. остается рабочим уже на новом адресе.</div></div><br>
Так может он тоже переоткрывает сокет, как только получает ошибку на старом сокете. И слушает на 0.0.0.0, а не на конкретном IP.]]></description>
        <author>Pacific</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412092&amp;view=findpost&amp;p=3758880</guid>
        <pubDate>Sat, 03 Feb 2018 14:14:09 +0000</pubDate>
        <title>Сокет после down / up</title>
        <link>https://forum.sources.ru/index.php?showtopic=412092&amp;view=findpost&amp;p=3758880</link>
        <description><![CDATA[Oleg2004: На свете чудеса есть, в сетевом программировании - нет.<br>
Предоставьте код своих <br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>DOWN -&gt; UP на один из интерфейсов (меняю IP адрес интерфейса с опусканием и поднятием).</div></div><br>
и протокол общения с клиентом.<br>
И какими образом вы определяете неработоспособность сокета.]]></description>
        <author>Oleg2004</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412092&amp;view=findpost&amp;p=3758674</guid>
        <pubDate>Fri, 02 Feb 2018 08:13:02 +0000</pubDate>
        <title>Сокет после down / up</title>
        <link>https://forum.sources.ru/index.php?showtopic=412092&amp;view=findpost&amp;p=3758674</link>
        <description><![CDATA[HardRock: Такая ситуация:<br>Открываю слушающий TCP сокет на 0.0.0.0 (ANY).<br><br>Затем делаю DOWN -&gt; UP на один из интерфейсов (меняю IP адрес интерфейса с опусканием и поднятием). После этого сокет оказывается неработоспособным. Приходится переоткрывать сокет.<br>При этом например вебсервер корректно переживает опускание/поднятие интерфейса, т.е. остается рабочим уже на новом адресе.<br><br>Вопрос: как он это делает и как мне сделать то же самое?<br><br>(Linux)]]></description>
        <author>HardRock</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      </channel>
      </rss>
	