<?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[Typkonvertierung von byte nach string und umgekehrt?]]></title><description><![CDATA[<p>Hallo werte Gemeinde!</p>
<p>Ich steh vor der Herausforderung einen Roboter(Client) über Ethernet TCP/IP mit einem externen PC(Server) zu verbinden. Um den Datenaustausch zwischen beiden zu gewährleisten liefert der Hersteller einen C#-Schnipsel mit, der compiliert als ServerApplikation arbeitet. Das Programm offnet einen ListenSocket, und wenn der Client eine Verbindung zum Server aufbaut, dann übernimmt ein HandlerSocket die Verbindung zwischen beiden. Danach werden synchron Daten ausgetauscht.</p>
<p>So nun bin ich dabei den C#-Code in C++-Code zu übersetzen und scheitere gerade an der Konvertierung des ankommenden Byte-Streams in einen String. In C# steht folgendes:</p>
<p>byte[] bytes = new Byte[1024];<br />
String strReceive = null;<br />
String strSend = null;</p>
<p>int bytesRec = handler.Receive(bytes);<br />
if (bytesRec == 0)<br />
{<br />
break;<br />
}</p>
<p>strReceive = String.Concat(strReceive,System.Text.Encoding.ASCII.GetString(bytes,0,bytesRec));</p>
<p>Zur Erklärung: bytes ist der Emfangspuffer, bytesRec zählt die empfangenen Bytes, strReceive beinhaltet den konvertierten Inhalt von bytes, wenn neue Infos in bytes hinzukommen, dann werden diese infos wieder(while-Schleife) konvertiert und an strReceive angehängt(String.Concat). Es findet eine Konvertierung vom Typ Byte(?) nach ASCII String statt. Es werden XML-Daten gesendet und empfangen.</p>
<p>Und nun bin ich am Suchen und machen, dass ich den obigen C#-Code in C++ übersetze. Ich hab da son paar fetzen gefunden, bin aber unsicher ...</p>
<p>z.Bsp.: (C++-Code)</p>
<p>BYTE test[] = &quot;Hello&quot;;<br />
string container;</p>
<p>container = reinterpret_cast&lt;char *&gt;(test);</p>
<p>oder:</p>
<p>strReceive += (string) bytesRec</p>
<p>Was meint ihr dazu? Und wie funktioniert das dann in die andere Richtung?</p>
<p>Gruß, Matze</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/202190/typkonvertierung-von-byte-nach-string-und-umgekehrt</link><generator>RSS for Node</generator><lastBuildDate>Mon, 29 Jun 2026 01:13:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/202190.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 08 Jan 2008 17:33:37 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Typkonvertierung von byte nach string und umgekehrt? on Wed, 09 Jan 2008 10:33:43 GMT]]></title><description><![CDATA[<p>Hallo werte Gemeinde!</p>
<p>Ich steh vor der Herausforderung einen Roboter(Client) über Ethernet TCP/IP mit einem externen PC(Server) zu verbinden. Um den Datenaustausch zwischen beiden zu gewährleisten liefert der Hersteller einen C#-Schnipsel mit, der compiliert als ServerApplikation arbeitet. Das Programm offnet einen ListenSocket, und wenn der Client eine Verbindung zum Server aufbaut, dann übernimmt ein HandlerSocket die Verbindung zwischen beiden. Danach werden synchron Daten ausgetauscht.</p>
<p>So nun bin ich dabei den C#-Code in C++-Code zu übersetzen und scheitere gerade an der Konvertierung des ankommenden Byte-Streams in einen String. In C# steht folgendes:</p>
<p>byte[] bytes = new Byte[1024];<br />
String strReceive = null;<br />
String strSend = null;</p>
<p>int bytesRec = handler.Receive(bytes);<br />
if (bytesRec == 0)<br />
{<br />
break;<br />
}</p>
<p>strReceive = String.Concat(strReceive,System.Text.Encoding.ASCII.GetString(bytes,0,bytesRec));</p>
<p>Zur Erklärung: bytes ist der Emfangspuffer, bytesRec zählt die empfangenen Bytes, strReceive beinhaltet den konvertierten Inhalt von bytes, wenn neue Infos in bytes hinzukommen, dann werden diese infos wieder(while-Schleife) konvertiert und an strReceive angehängt(String.Concat). Es findet eine Konvertierung vom Typ Byte(?) nach ASCII String statt. Es werden XML-Daten gesendet und empfangen.</p>
<p>Und nun bin ich am Suchen und machen, dass ich den obigen C#-Code in C++ übersetze. Ich hab da son paar fetzen gefunden, bin aber unsicher ...</p>
<p>z.Bsp.: (C++-Code)</p>
<p>BYTE test[] = &quot;Hello&quot;;<br />
string container;</p>
<p>container = reinterpret_cast&lt;char *&gt;(test);</p>
<p>oder:</p>
<p>strReceive += (string) bytesRec</p>
<p>Was meint ihr dazu? Und wie funktioniert das dann in die andere Richtung?</p>
<p>Gruß, Matze</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1433184</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1433184</guid><dc:creator><![CDATA[matze77]]></dc:creator><pubDate>Wed, 09 Jan 2008 10:33:43 GMT</pubDate></item><item><title><![CDATA[Reply to Typkonvertierung von byte nach string und umgekehrt? on Wed, 09 Jan 2008 07:15:26 GMT]]></title><description><![CDATA[<p>&quot;BYTE&quot; ist normalerweise ein typedef für unsigned char (wer etwas anderes gehört hat, bitte belegen), also solltest du dein BYTE-Array bedenkenlos als char-Array verwerten können (Stichwort &quot;cast&quot;).</p>
<p>Und wenn ich deinen C# Code übersetzen wollte, dürfte das etwa so aussehen:</p>
<pre><code class="language-cpp">BYTE bytes[1024];
int bytesRec = recv(handler,bytes,1024,0);//entspricht dem Handler.Recieve()-Aufruf
if(bytesRec==0)
  break;
strRecieve.append((char*)bytes,bytesRec);
</code></pre>
<p>Für die Gegenrichtung kannst du einfach strSend.c_str() auf die Leitung schicken:</p>
<pre><code class="language-cpp">send(handler,strSend.c_str(),strSend.length(),0);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1433399</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1433399</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 09 Jan 2008 07:15:26 GMT</pubDate></item><item><title><![CDATA[Reply to Typkonvertierung von byte nach string und umgekehrt? on Wed, 09 Jan 2008 10:32:38 GMT]]></title><description><![CDATA[<p>Danke CStoll, danke für Deine Müh!</p>
<p>Hab ich das richtig mitbekommen? BYTE, is das nicht .NET Zeugs? Denn als typedef gibts das ja nicht in C++. Ich möchte ohne .NET arbeiten.</p>
<p>Deine Sende- und Empfangsvariablen (strReceive &amp; strSend) sind soweit ich das Erkennen kann, Strukturen oder Objekte. In C# sind sie bei mir folgendermaßen definiert. (Sorry hatte ich vergessen zu schreiben)</p>
<p>String strReceive = null;<br />
String strSend = null;</p>
<p>Sowas wird doch in C++ mit char strReceive ... ? erreicht, oder?<br />
Wie würde denn der C++ Code aussehen, wenn Du es ohne Objekt schreibst?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1433518</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1433518</guid><dc:creator><![CDATA[matze77]]></dc:creator><pubDate>Wed, 09 Jan 2008 10:32:38 GMT</pubDate></item><item><title><![CDATA[Reply to Typkonvertierung von byte nach string und umgekehrt? on Wed, 09 Jan 2008 10:35:50 GMT]]></title><description><![CDATA[<p>matze77 schrieb:</p>
<blockquote>
<p>Hab ich das richtig mitbekommen? BYTE, is das nicht .NET Zeugs? Denn als typedef gibts das ja nicht in C++. Ich möchte ohne .NET arbeiten.</p>
</blockquote>
<p>BYTE gibt es auch in der MFC - aber vermutlich reicht es aus, mit char zu arbeiten (laut MSDN senden/empfangen die Socket-Funktionen auch char*-Daten).</p>
<blockquote>
<p>Deine Sende- und Empfangsvariablen (strReceive &amp; strSend) sind soweit ich das Erkennen kann, Strukturen oder Objekte. In C# sind sie bei mir folgendermaßen definiert. (Sorry hatte ich vergessen zu schreiben)</p>
<p>String strReceive = null;<br />
String strSend = null;</p>
<p>Sowas wird doch in C++ mit char strReceive ... ? erreicht, oder?<br />
Wie würde denn der C++ Code aussehen, wenn Du es ohne Objekt schreibst?</p>
</blockquote>
<p>&quot;char strRecieve;&quot; wäre ein wenig klein - nimm lieber &quot;std::string strRecieve;&quot; dafür (das dürfte die beste Entsprechung zu C# String sein).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1433522</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1433522</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 09 Jan 2008 10:35:50 GMT</pubDate></item><item><title><![CDATA[Reply to Typkonvertierung von byte nach string und umgekehrt? on Wed, 09 Jan 2008 10:39:32 GMT]]></title><description><![CDATA[<p>Hui das ging schnell, danke! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Und dazu muss ich dann bestimmt noch was includen, nicht wahr?</p>
<p>bisher siehts bei mir so aus:</p>
<p>#include &lt;iostream.h&gt;<br />
#include &lt;stdlib.h&gt;<br />
#include &lt;windows.h&gt;<br />
#include &lt;winsock2.h&gt;<br />
#include &lt;string.h&gt;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1433526</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1433526</guid><dc:creator><![CDATA[matze77]]></dc:creator><pubDate>Wed, 09 Jan 2008 10:39:32 GMT</pubDate></item><item><title><![CDATA[Reply to Typkonvertierung von byte nach string und umgekehrt? on Wed, 09 Jan 2008 10:47:58 GMT]]></title><description><![CDATA[<p>&lt;iostream.h&gt; gibt's nicht mehr (die heißt jetzt &lt;iostream&gt;), &lt;string.h&gt; ist der falsche Header (der enthält strcpy() und Co.) - du brauchst stattdessen die &lt;string&gt;.<br />
(und anstelle der &lt;stdlib.h&gt; kannst du auch gleich die &lt;cstdlib&gt; verwenden)</p>
<p>Zur Erklärung: Die Header der C++ Standardbibliothek haben <em>keine</em> Dateiendung, die Header der C-Bibliothek (string.h, stdlib.h etc) stehen in C++ auch noch zur Verfügung, aber man sollte lieber die an C++ angepasste Version davon verwenden (cstring, cstdlib etc).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1433532</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1433532</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 09 Jan 2008 10:47:58 GMT</pubDate></item><item><title><![CDATA[Reply to Typkonvertierung von byte nach string und umgekehrt? on Wed, 09 Jan 2008 10:57:03 GMT]]></title><description><![CDATA[<p>Wow, danke CStoll! <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/1433540</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1433540</guid><dc:creator><![CDATA[matze77]]></dc:creator><pubDate>Wed, 09 Jan 2008 10:57:03 GMT</pubDate></item></channel></rss>