<?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[Erklärung zu SendBuf (war : SendBuf)]]></title><description><![CDATA[<p>Ich hätte eine bitte! Kann mir jemand den Befehl SendBuf mal genau erklären? Ich habe den nich so ganz kapiert, aber bräuchte ihn. Da zum Teil die Borlandhilfe auch noch auf englisch ist, wird die verwirrung noch größer...</p>
<p>vielen Dank</p>
<p>/Edit : Bitte aussagekräftigeren Thematitel wählen</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/174055/erklärung-zu-sendbuf-war-sendbuf</link><generator>RSS for Node</generator><lastBuildDate>Fri, 14 Aug 2026 17:20:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/174055.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 22 Feb 2007 14:47:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Erklärung zu SendBuf (war : SendBuf) on Thu, 22 Feb 2007 15:34:42 GMT]]></title><description><![CDATA[<p>Ich hätte eine bitte! Kann mir jemand den Befehl SendBuf mal genau erklären? Ich habe den nich so ganz kapiert, aber bräuchte ihn. Da zum Teil die Borlandhilfe auch noch auf englisch ist, wird die verwirrung noch größer...</p>
<p>vielen Dank</p>
<p>/Edit : Bitte aussagekräftigeren Thematitel wählen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1233365</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1233365</guid><dc:creator><![CDATA[Nico90]]></dc:creator><pubDate>Thu, 22 Feb 2007 15:34:42 GMT</pubDate></item><item><title><![CDATA[Reply to Erklärung zu SendBuf (war : SendBuf) on Thu, 22 Feb 2007 15:33:47 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Was gibt es da zu erklären? Es wird statt dem normalen AnsiString (SendText) eben ein Bytearray verschickt. Der Start wird durch <em>Buf</em> gekennzeichnet, die Größe in Bytes bzw. die Anzahl der Zeichen durch <em>Count</em>.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1233403</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1233403</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Thu, 22 Feb 2007 15:33:47 GMT</pubDate></item><item><title><![CDATA[Reply to Erklärung zu SendBuf (war : SendBuf) on Thu, 22 Feb 2007 15:48:41 GMT]]></title><description><![CDATA[<p>Ich versteh nicht ganz wie ich den einsetzen muss:</p>
<p>Ich habe die Anzahl der User in einem Chat als Variable gespeichert,<br />
die ich dann über SendBuf an die Clienten übetragen will.</p>
<p>Was muss ich dazu machen?</p>
<p>Nehmen wir mal an die Variable sei int a;</p>
<p>(für a&lt;10)</p>
<pre><code class="language-cpp">ServerSocket1-&gt;Socket-&gt;SendBuf(a,1);
</code></pre>
<p>aber das geht ja nicht. wie muss in diesem fall der befehl genau lauten?<br />
Das heißt, was muss ich in die Klammern schreiben?</p>
<p>Nico</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1233416</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1233416</guid><dc:creator><![CDATA[Nico90]]></dc:creator><pubDate>Thu, 22 Feb 2007 15:48:41 GMT</pubDate></item><item><title><![CDATA[Reply to Erklärung zu SendBuf (war : SendBuf) on Thu, 22 Feb 2007 15:55:52 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Diese Funktion ist in erster Linie dazu um binäre Daten zu übertragen. Vermutlich ist es für dich einfacher den Integer einfach als String zu senden</p>
<pre><code class="language-cpp">SendText(IntToStr(a));
</code></pre>
<p>Wenn du den Integer unbedingt binär übertragen willst (da du ansonsten keine anderen binären Daten zu senden scheinst ist das bei dir sicher nicht notwendig) must du eben casten</p>
<pre><code class="language-cpp">SendBuf(reinterpret_cast&lt;void*&gt;(&amp;a), sizeof(a));
</code></pre>
<p>Auf jedenfall must du natürlich genauso empfangen wie du sendest und dieser Steuerwert muß auch durch dein Anwendungsprotokoll definiert werden, um besondern behandelt zu werden.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1233423</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1233423</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Thu, 22 Feb 2007 15:55:52 GMT</pubDate></item><item><title><![CDATA[Reply to Erklärung zu SendBuf (war : SendBuf) on Thu, 22 Feb 2007 16:19:43 GMT]]></title><description><![CDATA[<p>Das Problem: Ich sende über SendText schon den Chatinhalt, das heißt, dann würde die Anzahl der Chatter plötzlich im RichEdit stehen. Ich will sie aber in einem Label stehen haben.<br />
Das heißt ich muss wohl auf die zweite Lösung zurückgreifen.</p>
<p>Das heißt ich empfange so?</p>
<pre><code class="language-cpp">ClientSocket1-&gt;Socket-&gt;ReceiveBuf(reinterpret_cast&lt;void*&gt;(&amp;a), sizeof(a))
Label7-&gt;Caption= &quot;User online: &quot; + a;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1233448</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1233448</guid><dc:creator><![CDATA[Nico90]]></dc:creator><pubDate>Thu, 22 Feb 2007 16:19:43 GMT</pubDate></item><item><title><![CDATA[Reply to Erklärung zu SendBuf (war : SendBuf) on Thu, 22 Feb 2007 16:37:01 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>genau das hilft dir da nicht weiter, denn im On...Read-Event weiß der Emfänger ja nicht, ob SendText oder SendBuf vom Sender benutzt wurde. Das wird nur durch den Kontext klar, der durch ein von dir festgelegtes Protokoll definiert wird.<br />
Einfaches Beispiel :<br />
Der Server sendet Text normal mit SendText, den UserCount durch</p>
<pre><code class="language-cpp">SendText(AnsiString(&quot;USERCOUNT:&quot;) + IntToStr(a));
</code></pre>
<p>Im Event der Clients muß jetzt also der Text wieder überprüft werden</p>
<pre><code class="language-cpp">AnsiString Text = ...;
if (Text.Pos(&quot;USERCOUNT:&quot;) == 1) // Usercount wurde gesendet
{
  Text.Delete(1, 10);
  int a = StrToInt(Text); 
  ... // Usercount weiter verarbeiten
  return;
}
...
// Normalen Text weiterverarbeiten
</code></pre>
<p>Das hätte noch den kleinen Schönheitsfehler, das auch durch Benutzereingaben ein Usercount-Versand vorgetäuscht werden könnte. Deshalb werden normalerweise alle Usereingaben noch gekapselt (gequotet), um Steuerdaten zusätzlich und außerhalb Userreichweite übertragen zu können.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1233465</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1233465</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Thu, 22 Feb 2007 16:37:01 GMT</pubDate></item><item><title><![CDATA[Reply to Erklärung zu SendBuf (war : SendBuf) on Thu, 22 Feb 2007 16:41:23 GMT]]></title><description><![CDATA[<p>cool danke, jetzt bin ich schlauer, werde mich gleich dransetzen.</p>
<p>theoretisch könnte man ja auh einfach usereingaben mit USERCOUNT verbieten.</p>
<p>ich probiers aus! Nico</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1233470</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1233470</guid><dc:creator><![CDATA[Nico90]]></dc:creator><pubDate>Thu, 22 Feb 2007 16:41:23 GMT</pubDate></item><item><title><![CDATA[Reply to Erklärung zu SendBuf (war : SendBuf) on Thu, 22 Feb 2007 17:06:36 GMT]]></title><description><![CDATA[<p>Habe alles eingefügt, klappt aber noch nicht, im RichEdit kommt es so raus:</p>
<blockquote>
<p>Nico (16:25) : HiUSERCOUNT: 1</p>
</blockquote>
<p>Das ist mein Code:</p>
<p>im Clienten:</p>
<pre><code class="language-cpp">void __fastcall TForm1::ClientSocket1Read(TObject *Sender,
      TCustomWinSocket *Socket)
{
AnsiString Text = ClientSocket1-&gt;Socket-&gt;ReceiveText();

if (Text.Pos(&quot;USERCOUNT:&quot;) == 1) // Usercount wurde gesendet
{
  Text.Delete(1, 10);
  int a = StrToInt(Text);
  Label7-&gt;Caption = &quot;User online: &quot; + a ;
  return;
}

else
{
RichEdit1-&gt;Lines-&gt;Add (Text);
RichEdit1-&gt;Perform(EM_SCROLLCARET, 0, 0);
if (Frame41-&gt;CheckBox1-&gt;Checked == true)
MediaPlayer1-&gt;Play();
if (c==1)
FlashWindow(Application-&gt;Handle,true);
}
}
</code></pre>
<p>und im Server</p>
<pre><code class="language-cpp">void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,
      TCustomWinSocket *Socket)
{
int x;
RichEdit1-&gt;Text = Socket-&gt;ReceiveText();
RichEdit3-&gt;Text = RichEdit3-&gt;Text + &quot; \n&quot; + RichEdit1-&gt;Text;
int Verbindungen = ServerSocket1-&gt;Socket-&gt;ActiveConnections;
     for(int x = 0; x &lt;= Verbindungen - 1; x++){
       ServerSocket1-&gt;Socket-&gt;Connections[x]-&gt;SendText(RichEdit1-&gt;Text);
       ServerSocket1-&gt;Socket-&gt;Connections[x]-&gt;SendText(AnsiString(&quot;USERCOUNT:&quot;) + IntToStr(a));
       }

RichEdit3-&gt;Lines-&gt;SaveToFile(SaveDialog1-&gt;FileName);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1233497</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1233497</guid><dc:creator><![CDATA[Nico90]]></dc:creator><pubDate>Thu, 22 Feb 2007 17:06:36 GMT</pubDate></item><item><title><![CDATA[Reply to Erklärung zu SendBuf (war : SendBuf) on Thu, 22 Feb 2007 21:28:55 GMT]]></title><description><![CDATA[<p>So, wie ich das sehe, sendest Du den Text des Benutzers unmittelbar vor dem USERCOUNT, was soviel heißt, daß zweiteres vermutlich ankommt, bevor ersteres verarbeitet ist. Frage statt dessen lieber ab, ob USERCOUNT irgendwo im Text steht, nicht nur an erster Stelle. Dann mußt Du nur darauf achten, daß Du eventuellen Text vor USERCOUNT auch weiterverarbeitest.</p>
<p>... oder Du drehst einfach die Sendereihenfolge um <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>Gruß,<br />
Christian</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1233695</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1233695</guid><dc:creator><![CDATA[Christian Sonder]]></dc:creator><pubDate>Thu, 22 Feb 2007 21:28:55 GMT</pubDate></item><item><title><![CDATA[Reply to Erklärung zu SendBuf (war : SendBuf) on Fri, 23 Feb 2007 22:56:30 GMT]]></title><description><![CDATA[<p>Leider funktioniert das nicht so ganz wie ich will...<br />
wenn alles gut läuft, funktioniert es, es gibt allerdings phasen, da schmeißt er wieder alles durcheinander.</p>
<p>Gibt es noch irgendeine andere Möglichkeit, bzw. etwas, dass das System verstärkt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1234402</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1234402</guid><dc:creator><![CDATA[Nico90]]></dc:creator><pubDate>Fri, 23 Feb 2007 22:56:30 GMT</pubDate></item><item><title><![CDATA[Reply to Erklärung zu SendBuf (war : SendBuf) on Sat, 24 Feb 2007 10:25:06 GMT]]></title><description><![CDATA[<p>Hi,<br />
Welche der Lösungsvorschläge hast Du denn benutzt? Wenn es der zweite war, könnte es (aufgrund schlechter Übertragungszeiten) auch dazu kommen, daß ein USERCOUNT ankommt, bevor der vorher gesendete Text abgearbeitet ist und dadurch dann nicht an erster Stelle steht.</p>
<p>Am sinnvollsten wäre aber vermutlich, wenn Du (wie Akari schrieb) die Usereingaben kapselst. Bei zeichenweisem Vergleich kannst Du dann eine bool'sche Variable bUserText auf true oder false setzen. Sobald sie auf false steht, kannst Du den nachfolgenden Text (also ab Position 1) mit USERCOUNT - gerne auch mit anderen Schlüsselwörtern - vergleichen und die gewünschten Maßnahmen ergreifen.<br />
Gruß,<br />
Christian</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1234528</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1234528</guid><dc:creator><![CDATA[Christian Sonder]]></dc:creator><pubDate>Sat, 24 Feb 2007 10:25:06 GMT</pubDate></item></channel></rss>