<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Bild senden über Socket]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich möchte gerne ein Bild über eine Socket-Verbindung schicken.<br />
Ich habe den Server schon getestet, er empfängt das Bild und zeigt es an<br />
(mit einem anderen Programm).</p>
<p>Jetzt möchte ich das gerne mit dem &quot;Borland C++ Builder 5&quot; an den Server Senden.</p>
<p>Folgendes habe ich gemacht:</p>
<pre><code class="language-cpp">void __fastcall TfrmMain::VerbindenButtonClick(TObject *Sender)
{
	 ClientSocket1-&gt;Host=ServerEditFeld-&gt;Text;
	 ClientSocket1-&gt;Port=StrToIntDef(Trim(PortEditFeld-&gt;Text),8000);

	 try
	 {

		ClientSocket1-&gt;Open();
	 }
	 catch(...)
	 {
		ShowMessage(&quot;Fehler beim Connecten von &quot; + ServerEditFeld-&gt;Text + &quot; : &quot; + IntToStr(ClientSocket1-&gt;Port));
	 }
}
//---------------------------------------------------------------------------
</code></pre>
<p>...</p>
<pre><code class="language-cpp">void __fastcall TfrmMain::SendenButtonClick(TObject *Sender)
{

	 TJPEGImage *jpg     = new  TJPEGImage();
	 TMemoryStream *mem = new TMemoryStream();

	 jpg-&gt;Assign(Image1-&gt;Picture);
	 mem-&gt;Clear();
	 jpg-&gt;SaveToStream(mem);

	 //mem-&gt;SaveToFile(&quot;c:\\test.jpg&quot;);

	 ClientSocket1-&gt;Active = true;
	 ClientSocket1-&gt;Socket-&gt;SendStream(mem);
	 //ClientSocket1-&gt;Socket-&gt;SendBuf(mem,mem-&gt;Size);

          delete jpg;
          jpg=null;
          delete mem;
          mem=null;
}
//---------------------------------------------------------------------------
</code></pre>
<p>Wie Ihr seht habe ich vorher auch schon geschaut ob in dem Stream was drinn ist ;-).</p>
<p>Der Connect funktioniert, der Server meldet ein Client Connectet.</p>
<p>Aber nach dem Senden des Streams (in beiden Beispielen oben)<br />
passiert einfach nichts ;-(.</p>
<p>Kann mir jemand helfen ?</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/153624/bild-senden-über-socket</link><generator>RSS for Node</generator><lastBuildDate>Sun, 09 Aug 2026 09:47:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/153624.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 19 Jul 2006 08:32:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Bild senden über Socket on Wed, 19 Jul 2006 08:33:52 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich möchte gerne ein Bild über eine Socket-Verbindung schicken.<br />
Ich habe den Server schon getestet, er empfängt das Bild und zeigt es an<br />
(mit einem anderen Programm).</p>
<p>Jetzt möchte ich das gerne mit dem &quot;Borland C++ Builder 5&quot; an den Server Senden.</p>
<p>Folgendes habe ich gemacht:</p>
<pre><code class="language-cpp">void __fastcall TfrmMain::VerbindenButtonClick(TObject *Sender)
{
	 ClientSocket1-&gt;Host=ServerEditFeld-&gt;Text;
	 ClientSocket1-&gt;Port=StrToIntDef(Trim(PortEditFeld-&gt;Text),8000);

	 try
	 {

		ClientSocket1-&gt;Open();
	 }
	 catch(...)
	 {
		ShowMessage(&quot;Fehler beim Connecten von &quot; + ServerEditFeld-&gt;Text + &quot; : &quot; + IntToStr(ClientSocket1-&gt;Port));
	 }
}
//---------------------------------------------------------------------------
</code></pre>
<p>...</p>
<pre><code class="language-cpp">void __fastcall TfrmMain::SendenButtonClick(TObject *Sender)
{

	 TJPEGImage *jpg     = new  TJPEGImage();
	 TMemoryStream *mem = new TMemoryStream();

	 jpg-&gt;Assign(Image1-&gt;Picture);
	 mem-&gt;Clear();
	 jpg-&gt;SaveToStream(mem);

	 //mem-&gt;SaveToFile(&quot;c:\\test.jpg&quot;);

	 ClientSocket1-&gt;Active = true;
	 ClientSocket1-&gt;Socket-&gt;SendStream(mem);
	 //ClientSocket1-&gt;Socket-&gt;SendBuf(mem,mem-&gt;Size);

          delete jpg;
          jpg=null;
          delete mem;
          mem=null;
}
//---------------------------------------------------------------------------
</code></pre>
<p>Wie Ihr seht habe ich vorher auch schon geschaut ob in dem Stream was drinn ist ;-).</p>
<p>Der Connect funktioniert, der Server meldet ein Client Connectet.</p>
<p>Aber nach dem Senden des Streams (in beiden Beispielen oben)<br />
passiert einfach nichts ;-(.</p>
<p>Kann mir jemand helfen ?</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1100198</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1100198</guid><dc:creator><![CDATA[YLIREBUS]]></dc:creator><pubDate>Wed, 19 Jul 2006 08:33:52 GMT</pubDate></item><item><title><![CDATA[Reply to Bild senden über Socket on Wed, 19 Jul 2006 15:10:52 GMT]]></title><description><![CDATA[<p>Wird das Ereignis ClientRead des Servers wenigstens erreicht? Wenn ja, dann poste mal diesen Code.<br />
Wenn nein, dann würde ich den Stream zwischenspeichern, um zu prüfen, ob er die gewünschten Daten enthält.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1100485</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1100485</guid><dc:creator><![CDATA[Rostfrei**]]></dc:creator><pubDate>Wed, 19 Jul 2006 15:10:52 GMT</pubDate></item><item><title><![CDATA[Reply to Bild senden über Socket on Thu, 20 Jul 2006 08:42:56 GMT]]></title><description><![CDATA[<p>Habe leider vergesen, das das ganze als byte array übertragen werden muss ;-).</p>
<pre><code class="language-cpp">Byte *by[65000];

	 mem-&gt;Position=0;
	 try
	 {
		memcpy(by,mem-&gt;Memory,mem-&gt;Size);
	 }
	 catch(...)
	 {
	  ShowMessage(&quot;FEHLER beim memcopy&quot;);
	 }	 
           ClientSocket1-&gt;Socket-&gt;SendBuf(by,mem-&gt;Size);
</code></pre>
<p>Jetzt muss ich nurnoch herausfinden, wie ich das Byte-array dynamisch an die tatsächliche Größe des Bildes anpasse ;-).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1100854</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1100854</guid><dc:creator><![CDATA[YLIREBUS]]></dc:creator><pubDate>Thu, 20 Jul 2006 08:42:56 GMT</pubDate></item><item><title><![CDATA[Reply to Bild senden über Socket on Thu, 20 Jul 2006 08:47:06 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">Byte* by = new Byte[mem.size];
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1100859</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1100859</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 20 Jul 2006 08:47:06 GMT</pubDate></item><item><title><![CDATA[Reply to Bild senden über Socket on Thu, 20 Jul 2006 09:03:42 GMT]]></title><description><![CDATA[<p>Danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";-)"
      alt="😉"
    /></p>
<p>Das hatte ich eigendlich ausprobiert, da hat er mir irgendwas von nicht statisches element erzählt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";-)"
      alt="😉"
    /></p>
<p>Aber jetzt geht's</p>
<p>Supiiiiii danke an alle beteiligten,</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1100870</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1100870</guid><dc:creator><![CDATA[YLIREBUS]]></dc:creator><pubDate>Thu, 20 Jul 2006 09:03:42 GMT</pubDate></item><item><title><![CDATA[Reply to Bild senden über Socket on Thu, 20 Jul 2006 09:13:39 GMT]]></title><description><![CDATA[<p>Der Fehler kommt nur wenn Du es ohne new versuchst... (Byte by[65000])</p>
<p>In meinem Beispiel muss es natürlich auch mem-&gt;Size heißen.<br />
Vergiss nicht, das Byte-Array muss mit delete[] by; freigegeben werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1100880</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1100880</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 20 Jul 2006 09:13:39 GMT</pubDate></item><item><title><![CDATA[Reply to Bild senden über Socket on Fri, 21 Jul 2006 06:29:47 GMT]]></title><description><![CDATA[<p>OK danke Dir</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1101580</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1101580</guid><dc:creator><![CDATA[YLIREBUS]]></dc:creator><pubDate>Fri, 21 Jul 2006 06:29:47 GMT</pubDate></item></channel></rss>