<?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=412296&amp;view=findpost&amp;p=3764240</guid>
        <pubDate>Mon, 19 Mar 2018 19:14:49 +0000</pubDate>
        <title>Не вызывается OnClose сервера при закрытии сокета клиента</title>
        <link>https://forum.sources.ru/index.php?showtopic=412296&amp;view=findpost&amp;p=3764240</link>
        <description><![CDATA[Oleg2004: Вы вполне можете все правильно делать.<br>
Но<br>
Сетевые классы MFC сотворены дико кривыми руками.<br>
А потому MFC я никогда не рекомендую в профессиональных сетевых приложениях. <br>
Увы, это такой опыт. &lt;_&lt;<br>
Есть еще такой вариант<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>И хотя вызов shutdown() с параметром how=2 применяется достаточно редко, в некоторых реализациях Windows-сокетов вызов closesocket() работает неправильно, если предварительно не было обращения к shutdown() с how=2. </div></div><br>
Т.е. на клиенте надо делать shutdown() с how=2, а потом closesocket()<br>
Ну и такое возможно:<br>
<div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>•	Событие FD_CLOSE: Действительно только для ориентированных на соединение сокетов (например SOCK_STREAM). <br>
1.	Когда происходит обращение к WSAAsyncSelect(), и в этот момент соединение по сокету уже закрыто.<br>
2.	После того, как удаленная система инициализировала нормальное завершение, и в буфере нет доступных данных. Имейте в виду, что, если данные был получены и  ожидают считывания, и при этом удаленная система инициализирует нормальное завершение,<strong class='tag-b'> FD_CLOSE не выдается, пока все ожидающие чтения данные не будут прочитаны. </strong><br>
3.	После того как  локальная система инициализировала нормальное завершение с помощью shutdown() и удаленная система ответила признаком &quot;End of Data&quot; (например, TCP FIN), и в буфере отсутствуют доступные данные.<br>
4.	Если удаленная система обрывает соединение (например шлет TCP RST), и  lParam будет содержать значение ошибки WSAECONNRESET.</div></div>]]></description>
        <author>Oleg2004</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412296&amp;view=findpost&amp;p=3764215</guid>
        <pubDate>Mon, 19 Mar 2018 18:06:16 +0000</pubDate>
        <title>Не вызывается OnClose сервера при закрытии сокета клиента</title>
        <link>https://forum.sources.ru/index.php?showtopic=412296&amp;view=findpost&amp;p=3764215</link>
        <description><![CDATA[JoeUser: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412296&view=findpost&p=3764128'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>a_n_y_a &#064; <time class="tag-quote__quoted-time" datetime="2018-03-19T07:35:36+00:00">19.03.18, 07:35</time></span><div class='quote '>Есть класс на основе CAsyncSocket</div></div><br>
Класс на основе CAsyncSocket какой протокол реализует?]]></description>
        <author>JoeUser</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412296&amp;view=findpost&amp;p=3764128</guid>
        <pubDate>Mon, 19 Mar 2018 07:35:36 +0000</pubDate>
        <title>Не вызывается OnClose сервера при закрытии сокета клиента</title>
        <link>https://forum.sources.ru/index.php?showtopic=412296&amp;view=findpost&amp;p=3764128</link>
        <description><![CDATA[a_n_y_a: Есть класс на основе CAsyncSocket, в нем нормально отрабатывает функция OnAccept при подключении клиента, но при завершении работы клиента и закрытии им сокета OnClose не приходит. Что я делаю не правильно? Код выложить не могу, так как наша служба безопасности делать это запретила. ФСБ понимаете ли&#33;]]></description>
        <author>a_n_y_a</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      </channel>
      </rss>
	