<?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=275780&amp;view=findpost&amp;p=2298237</guid>
        <pubDate>Thu, 25 Jun 2009 12:06:01 +0000</pubDate>
        <title>чтение данных recv</title>
        <link>https://forum.sources.ru/index.php?showtopic=275780&amp;view=findpost&amp;p=2298237</link>
        <description><![CDATA[popsa: ;) буфер увеличь <br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">TCHAR szBuf[512];</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script>]]></description>
        <author>popsa</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=275780&amp;view=findpost&amp;p=2298204</guid>
        <pubDate>Thu, 25 Jun 2009 11:42:04 +0000</pubDate>
        <title>чтение данных recv</title>
        <link>https://forum.sources.ru/index.php?showtopic=275780&amp;view=findpost&amp;p=2298204</link>
        <description><![CDATA[Alienka: <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">typedef struct __TitleMessage__ {</div><div class="code_line">&nbsp;&nbsp; &nbsp;ULONG nTitle;</div><div class="code_line">&nbsp;&nbsp; &nbsp;ULONG nSizeIn;</div><div class="code_line">&nbsp;&nbsp; &nbsp;ULONG nSizeOut;</div><div class="code_line">&nbsp;&nbsp; &nbsp;ULONG nCommand;</div><div class="code_line">} STitleMessage;</div></ol></div></div></div></div><br>
с szBuf все в порядке, программа валится именно на строчке free(pBuf)]]></description>
        <author>Alienka</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=275780&amp;view=findpost&amp;p=2298145</guid>
        <pubDate>Thu, 25 Jun 2009 10:39:10 +0000</pubDate>
        <title>чтение данных recv</title>
        <link>https://forum.sources.ru/index.php?showtopic=275780&amp;view=findpost&amp;p=2298145</link>
        <description><![CDATA[popsa: что за STitleMesssage ? в szBuff влазит сообщение об ошибке?]]></description>
        <author>popsa</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=275780&amp;view=findpost&amp;p=2298119</guid>
        <pubDate>Thu, 25 Jun 2009 10:21:31 +0000</pubDate>
        <title>чтение данных recv</title>
        <link>https://forum.sources.ru/index.php?showtopic=275780&amp;view=findpost&amp;p=2298119</link>
        <description><![CDATA[Alienka: а как быть в такой ситуации: я использую класс CSocket , при посылке данных на сервер связь пропадает, появляется ошибка SOCKET_ERROR. Как в таком случае освободить память, выделенную malloc. уменя выдает ошибку доступа к данным <br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp; &nbsp;PCHAR pBuf = (PCHAR)malloc(nInBufferSize+sizeof(STitleMessage));</div><div class="code_line">&nbsp;&nbsp; &nbsp;((STitleMessage*)pBuf)-&#62;nTitle = TITLE_CODE;</div><div class="code_line">&nbsp;&nbsp; &nbsp;((STitleMessage*)pBuf)-&#62;nCommand = dwIoControlCode;</div><div class="code_line">&nbsp;&nbsp; &nbsp;((STitleMessage*)pBuf)-&#62;nSizeIn = &nbsp; nInBufferSize;</div><div class="code_line">&nbsp;&nbsp; &nbsp;((STitleMessage*)pBuf)-&#62;nSizeOut = nOutBufferSize;</div><div class="code_line">&nbsp;&nbsp; &nbsp;if(nInBufferSize)memcpy(&amp;pBuf[sizeof(STitleMessage)],lpInBuffer,nInBufferSize);</div><div class="code_line">&nbsp;&nbsp; &nbsp;//отправляем данные</div><div class="code_line">&nbsp;&nbsp; &nbsp;if ( m_pSocket-&#62;Send(pBuf,nInBufferSize+sizeof(STitleMessage)) == SOCKET_ERROR )</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp;// &nbsp;TRACE(&quot; Error %d /n&quot;,m_pSocket-&#62;GetLastError());</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;TCHAR szBuf[80]; </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;LPVOID lpMsgBuf;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;DWORD dw = m_pSocket-&#62;GetLastError(); </div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;FormatMessage(</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FORMAT_MESSAGE_ALLOCATE_BUFFER | </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;FORMAT_MESSAGE_FROM_SYSTEM,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;NULL,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;dw,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(LPTSTR) &amp;lpMsgBuf,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0, NULL );</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;wsprintf(szBuf, &quot; failed with error %d: %s&quot;, dw, lpMsgBuf); </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;//TRACE</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;//MessageBox(NULL, szBuf, &quot;Error&quot;, MB_OK); </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;TRACE(szBuf);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;LocalFree(lpMsgBuf);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;free(pBuf);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return FALSE;</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div></ol></div></div></div></div>]]></description>
        <author>Alienka</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=275780&amp;view=findpost&amp;p=2297602</guid>
        <pubDate>Wed, 24 Jun 2009 15:05:13 +0000</pubDate>
        <title>чтение данных recv</title>
        <link>https://forum.sources.ru/index.php?showtopic=275780&amp;view=findpost&amp;p=2297602</link>
        <description><![CDATA[Alienka: все понятно, спасибо, буду пробовать]]></description>
        <author>Alienka</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=275780&amp;view=findpost&amp;p=2297467</guid>
        <pubDate>Wed, 24 Jun 2009 11:36:49 +0000</pubDate>
        <title>чтение данных recv</title>
        <link>https://forum.sources.ru/index.php?showtopic=275780&amp;view=findpost&amp;p=2297467</link>
        <description><![CDATA[Alexandoros: машина1_юзер_буфер ---- машина1_систем_буфер ----- машина2_систем_буфер ---- машина2_юзер буфер<br><br>Если размер юзер буфера меньше пришедшего пакета, ничего страшного, они в систем буфере.<br>Даные в систем буфере не будут в произвольно порядке, об этом беспокоится система.<br><br>Представь себе соединение как трубу в которую на одном конце наливают воду. На другом конце вода идет попорядку, без разделения на то что 1л налили час назад а еще 2л добавили 15 мин назад. Она там просто есть.  recv  за один присест считает  минимум(сколько даных есть, размер юзер буфера).]]></description>
        <author>Alexandoros</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=275780&amp;view=findpost&amp;p=2297404</guid>
        <pubDate>Wed, 24 Jun 2009 10:43:48 +0000</pubDate>
        <title>чтение данных recv</title>
        <link>https://forum.sources.ru/index.php?showtopic=275780&amp;view=findpost&amp;p=2297404</link>
        <description><![CDATA[Alienka: Помогите разобраться <br>
Что будет происходить в следующих ситуациях<br>
1) Клиент посылает send&#39;ом пакет определенного размера, пусть это будет 100 байт. Во входной очереди принимающей стороны появляются данные, но не все, recv считывает 60 байт и ждет остальное. Что делать если данные приходят в произвольном порядке<br>
2) Если размер буфера, в который recv читает данные меньше чем размер данных, находящихся в очереди, что будет с теми данными которые recv не считал , они удалятся из очереди или их можно будет считать в следующий раз <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="2009-06-24T10:54:53+00:00">24.06.09, 10:54</time></span></span><br>
и еще<br>
если в очереди находится несколько пакетов и размер буфера, в который recv считывает данные такой что, в него можно считать <br>
все данные очереди, что считает recv - только один пакет или всю очередь?]]></description>
        <author>Alienka</author>
        <category>C/C++: Сетевое программирование</category>
      </item>
	
      </channel>
      </rss>
	