<?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=263561&amp;view=findpost&amp;p=2182538</guid>
        <pubDate>Thu, 29 Jan 2009 16:57:33 +0000</pubDate>
        <title>Проблема с отправкой MemoryStream от сервера к клиенту</title>
        <link>https://forum.sources.ru/index.php?showtopic=263561&amp;view=findpost&amp;p=2182538</link>
        <description><![CDATA[WildBear: Нет, в обоих случаях подходит один и тот же вариант. Просто второе <strong class='tag-b'>TRUE</strong> означает, что перед посылкой потока должен быть передан его размер (OnlineS.Size)]]></description>
        <author>WildBear</author>
        <category>Delphi: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=263561&amp;view=findpost&amp;p=2182086</guid>
        <pubDate>Thu, 29 Jan 2009 12:02:19 +0000</pubDate>
        <title>Проблема с отправкой MemoryStream от сервера к клиенту</title>
        <link>https://forum.sources.ru/index.php?showtopic=263561&amp;view=findpost&amp;p=2182086</link>
        <description><![CDATA[ragnarek: офигеть, спасибо&#33; Я чуть с ума не сошел пока передвал)) Объясни пожалуйста, почему в случае FileStream <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">client.WriteStream(OnlineS,true,FALSE);</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
<br>
a MemoryStream <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">client.WriteStream(OnlineS,true,TRUE,OnlineS.Size);</div></ol></div></div></div></div>]]></description>
        <author>ragnarek</author>
        <category>Delphi: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=263561&amp;view=findpost&amp;p=2182067</guid>
        <pubDate>Thu, 29 Jan 2009 11:39:38 +0000</pubDate>
        <title>Проблема с отправкой MemoryStream от сервера к клиенту</title>
        <link>https://forum.sources.ru/index.php?showtopic=263561&amp;view=findpost&amp;p=2182067</link>
        <description><![CDATA[WildBear: Глянь еще раз мою строчку на передачу...]]></description>
        <author>WildBear</author>
        <category>Delphi: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=263561&amp;view=findpost&amp;p=2182040</guid>
        <pubDate>Thu, 29 Jan 2009 11:03:39 +0000</pubDate>
        <title>Проблема с отправкой MemoryStream от сервера к клиенту</title>
        <link>https://forum.sources.ru/index.php?showtopic=263561&amp;view=findpost&amp;p=2182040</link>
        <description><![CDATA[ragnarek: Киньте кто-нибудь рабочий исходник передачи MemoryStream()&#33;&#33;&#33;]]></description>
        <author>ragnarek</author>
        <category>Delphi: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=263561&amp;view=findpost&amp;p=2181989</guid>
        <pubDate>Thu, 29 Jan 2009 10:03:06 +0000</pubDate>
        <title>Проблема с отправкой MemoryStream от сервера к клиенту</title>
        <link>https://forum.sources.ru/index.php?showtopic=263561&amp;view=findpost&amp;p=2181989</link>
        <description><![CDATA[ragnarek: Абстрактный клас,это клас, методы которого надо перекрыть?Ладно, тут я допустил ошибку. Но с передачей размера,ничего не меняется&#33;<br>
WildBear пишет: <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">client.WriteStream(OnlineS,true,true,OnlineS.Size); // посылай так</div></ol></div></div></div></div><br>
у меня во втором примере клиента вот как:<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">var i:Int64; //думал проблема в представлении чисел, но даже инт64 не помогает</div><div class="code_line">.....</div><div class="code_line">i:=OnlineS.Size;</div><div class="code_line">client.WriteStream(OnlineS,true,false,i);</div></ol></div></div></div></div><br>
<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">AThread.Connection.ReadStream(OnlnS,-1,false);</div></ol></div></div></div></div><br>
возникает ошибка: Out of memory while expanding memory stream]]></description>
        <author>ragnarek</author>
        <category>Delphi: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=263561&amp;view=findpost&amp;p=2181873</guid>
        <pubDate>Thu, 29 Jan 2009 08:25:18 +0000</pubDate>
        <title>Проблема с отправкой MemoryStream от сервера к клиенту</title>
        <link>https://forum.sources.ru/index.php?showtopic=263561&amp;view=findpost&amp;p=2181873</link>
        <description><![CDATA[WildBear: <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">client.WriteStream(OnlineS,true,true,OnlineS.Size); // посылай так</div><div class="code_line">AThread.Connection.ReadStream(OnlnS,-1,false); // принимай так</div></ol></div></div></div></div><br>
А <strong class='tag-b'>h:TStrings</strong> переделай в <strong class='tag-b'>h:TStringList;</strong><br>
<strong class='tag-b'>TStrings</strong> не годится, так как он <em class='tag-i'>абстрактный</em>]]></description>
        <author>WildBear</author>
        <category>Delphi: Сетевое программирование</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=263561&amp;view=findpost&amp;p=2181714</guid>
        <pubDate>Wed, 28 Jan 2009 23:25:23 +0000</pubDate>
        <title>Проблема с отправкой MemoryStream от сервера к клиенту</title>
        <link>https://forum.sources.ru/index.php?showtopic=263561&amp;view=findpost&amp;p=2181714</link>
        <description><![CDATA[ragnarek: Друзья, в чем дело? Что не так? вот строчка сервера, который получая строку от клиента, отправляет ему Strings:<br>
Код:<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">if(AThread.Connection.ReadLn()=&#39;clientexec&#39;)then begin</div><div class="code_line">&nbsp;&nbsp; OnlnS := TMemoryStream.Create;</div><div class="code_line">&nbsp;&nbsp; OnlnS.Position:=0;</div><div class="code_line">&nbsp;&nbsp; ValueListEditor1.Strings.SaveToStream(OnlnS);</div><div class="code_line">&nbsp;&nbsp; Athread.Connection.WriteStream(OnlnS,true,false);</div><div class="code_line">&nbsp;&nbsp; //Athread.Connection.WriteInteger(5);</div><div class="code_line">&nbsp;&nbsp; Onlns.Free;</div><div class="code_line">end;</div></ol></div></div></div></div><br>
а вот клиент:<br>
Код:<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">Client.Connect();</div><div class="code_line">&nbsp;&nbsp; OnlineS := TMemoryStream.Create;</div><div class="code_line">&nbsp;&nbsp; Client.WriteLn(&#39;clientexec&#39;);</div><div class="code_line">&nbsp;&nbsp; OnlineS.Position:=0;</div><div class="code_line">&nbsp;&nbsp; Client.ReadStream(OnlineS,-1,true); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//в этой строчке таймаут!!!!</div><div class="code_line">&nbsp;&nbsp; ValueListEditor1.Strings.LoadFromStream(OnlineS);</div><div class="code_line">&nbsp;&nbsp; Client.Disconnect();</div></ol></div></div></div></div><br>
почему, возникает ошибка таймаута??? Помогите пожалуйста&#33;<br>
<br>
это было час назад. теперь я очень намудрил, и просто шлю мемористрим от клиента к серверу:<br>
клиент:<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">procedure TForm1.FormCreate(Sender: TObject);</div><div class="code_line">var i:Int64; //думал проблема в представлении чисел, но даже инт64 не помогает</div><div class="code_line">p:TStringList;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; client.Connect();</div><div class="code_line">&nbsp;&nbsp; OnlineS := TMemoryStream.Create;</div><div class="code_line">&nbsp;&nbsp; p:=TStringList.Create;</div><div class="code_line">&nbsp;&nbsp; p.Add(&#39;vovik&#39;);</div><div class="code_line">&nbsp;&nbsp; client.WriteInteger(5);</div><div class="code_line">&nbsp;&nbsp; //ValueListEditor1.Strings.SaveToStream(OnlineS);</div><div class="code_line">&nbsp;&nbsp; p.SaveToStream(OnlineS);</div><div class="code_line">&nbsp;&nbsp; //OnlineS.Position:=0;</div><div class="code_line">&nbsp;&nbsp; i:=OnlineS.Size;</div><div class="code_line">&nbsp;&nbsp; client.WriteStream(OnlineS,true,false,i);</div><div class="code_line">&nbsp;&nbsp; client.Disconnect();</div><div class="code_line">&nbsp;&nbsp; Onlines.Free;</div><div class="code_line">end;</div></ol></div></div></div></div><br>
<br>
сервер:<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">procedure TForm1.ServerExecute(AThread: TIdPeerThread);</div><div class="code_line">var</div><div class="code_line">&nbsp;FN: String;</div><div class="code_line">&nbsp;F: TFileStream;p:TStringList;h:TStrings;</div><div class="code_line">begin</div><div class="code_line">&nbsp;&nbsp; i:=AThread.Connection.ReadInteger(true);</div><div class="code_line">&nbsp;&nbsp; h:=TStrings.Create;</div><div class="code_line">&nbsp;&nbsp; ShowMessage(intToStr(i));</div><div class="code_line">&nbsp;&nbsp; OnlnS := TMemoryStream.Create;</div><div class="code_line">&nbsp;&nbsp; p:=TStringList.Create;</div><div class="code_line">&nbsp;&nbsp; //AThread.Connection.ReadStream(OnlnS,-1,false); //если эта строка, то ошибка памяти</div><div class="code_line">&nbsp;&nbsp; AThread.Connection.ReadStrings(h); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//если эта(вообще не передаю поток), то ошибка абстрактного класса</div><div class="code_line">&nbsp;&nbsp; ShowMessage(&#39;proverka svza&#39;);</div><div class="code_line">&nbsp;&nbsp; OnlnS.Position:=0;</div><div class="code_line">&nbsp;&nbsp; p.LoadFromStream(OnlnS);</div><div class="code_line">&nbsp;&nbsp; p.Free;</div><div class="code_line">&nbsp;&nbsp; OnlnS.Free;</div></ol></div></div></div></div><br>
помогите очень прошу&#33;]]></description>
        <author>ragnarek</author>
        <category>Delphi: Сетевое программирование</category>
      </item>
	
      </channel>
      </rss>
	