<?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[Wirrwarr-zeichen bei anzeige von string der über winsock geschickt wurde^^]]></title><description><![CDATA[<p>ich hab frage:</p>
<p>ich hab mir ne kleine class zu nem socket von TCP geschrieben un dann mal getestet oder die einwandfrei läuft. hab mit ner andren datei nen string geschickt un mit der class recvivt un ihn dann angezeigt mit win32 (edit). es kamen aber nur wirrwar r zeichen wie ì un en viereck :(:( ( die zeichen sind warsceinlich DOS zeichen die unter win32 ausgegeben wurdn)<br />
aber was ham die hier verloren ??</p>
<p>danke ,,, christoph <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>
]]></description><link>https://www.c-plusplus.net/forum/topic/163093/wirrwarr-zeichen-bei-anzeige-von-string-der-über-winsock-geschickt-wurde</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Jul 2026 08:38:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/163093.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 25 Oct 2006 22:21:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wirrwarr-zeichen bei anzeige von string der über winsock geschickt wurde^^ on Wed, 25 Oct 2006 22:21:36 GMT]]></title><description><![CDATA[<p>ich hab frage:</p>
<p>ich hab mir ne kleine class zu nem socket von TCP geschrieben un dann mal getestet oder die einwandfrei läuft. hab mit ner andren datei nen string geschickt un mit der class recvivt un ihn dann angezeigt mit win32 (edit). es kamen aber nur wirrwar r zeichen wie ì un en viereck :(:( ( die zeichen sind warsceinlich DOS zeichen die unter win32 ausgegeben wurdn)<br />
aber was ham die hier verloren ??</p>
<p>danke ,,, christoph <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1161525</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1161525</guid><dc:creator><![CDATA[Fachmann]]></dc:creator><pubDate>Wed, 25 Oct 2006 22:21:36 GMT</pubDate></item><item><title><![CDATA[Reply to Wirrwarr-zeichen bei anzeige von string der über winsock geschickt wurde^^ on Thu, 26 Oct 2006 00:01:33 GMT]]></title><description><![CDATA[<p>Du machst was falsch. Entweder beim Senden, beim Empfangen oder beim Schreiben in die Datei.<br />
-.-</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1161536</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1161536</guid><dc:creator><![CDATA[Nanyuki]]></dc:creator><pubDate>Thu, 26 Oct 2006 00:01:33 GMT</pubDate></item><item><title><![CDATA[Reply to Wirrwarr-zeichen bei anzeige von string der über winsock geschickt wurde^^ on Thu, 26 Oct 2006 07:43:34 GMT]]></title><description><![CDATA[<ol>
<li>das war mir fast klar dass ich was falsch mach *g*</li>
<li>ich schreib den string nicht in eine datei, ich geb ihn nur via edit-box aus.<br />
3)hier ein kleiner ausschnitt:</li>
</ol>
<p>[cpp]<br />
SOCKET remote[MAXREMOTES];<br />
...<br />
int remotes;<br />
...<br />
if(listen(s,10)==SOCKET_ERROR)<br />
return false;<br />
remote[remotes+1]=accept(s,NULL,NULL);<br />
remotes++;<br />
if (remote[remotes+1]==INVALID_SOCKET)<br />
return false;<br />
return true;<br />
...<br />
server1.recvs((char*)buf,0);<br />
MessageBox(0,buf,buf,MB_OK);</p>
<p>un da kommt scheisse raus (in buf)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1161630</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1161630</guid><dc:creator><![CDATA[Fachmann]]></dc:creator><pubDate>Thu, 26 Oct 2006 07:43:34 GMT</pubDate></item><item><title><![CDATA[Reply to Wirrwarr-zeichen bei anzeige von string der über winsock geschickt wurde^^ on Thu, 26 Oct 2006 08:07:12 GMT]]></title><description><![CDATA[<p>Ich weiß zwar nicht, was server1 für ein Typ ist, oder was recvs genau macht, aber ich nehme mal an, dass der zweite Parameter in recvs die Größe des Buffers erwartet. In einen 0 byte langen Buffer schreibt die Funktion nichts.</p>
<p>Edit:<br />
Was wohl auch nicht so gedacht ist, ist folgender Abschnitt:</p>
<pre><code class="language-cpp">remote[remotes+1]=accept(s,NULL,NULL);
remotes++;
if (remote[remotes+1]==INVALID_SOCKET)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1161643</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1161643</guid><dc:creator><![CDATA[Nanyuki]]></dc:creator><pubDate>Thu, 26 Oct 2006 08:07:12 GMT</pubDate></item><item><title><![CDATA[Reply to Wirrwarr-zeichen bei anzeige von string der über winsock geschickt wurde^^ on Thu, 26 Oct 2006 08:57:55 GMT]]></title><description><![CDATA[<p>ok es ist ein bissle verwirrend<br />
die class &quot;Ctcp&quot; (server1 ist eine instanz also abbildung) is eine klasse eines serversocket der alle sockets ,die auf ihn konnekten, in eine SOCKETarray speichert.<br />
der 2. parameter bedeutet: welscher SOCKET der array soll recviven.<br />
Weil remote[0] der 1. un einzigste socket -in diesem fall- in der array is muss also eine 0 hin.</p>
<p>&quot;remotes&quot; speichert die anzahl der sockets die in der array gespeichert sind. konnektet ein neuer socket so wird er in remote[remotes+1] gespeichert</p>
<p>ps.: ich bin kein guter erklärer, wenn du dich damit abgeben kannst dann weiss ich dass es auch noch gute menschen da draussen gibt <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>cu,,,christoph</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1161701</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1161701</guid><dc:creator><![CDATA[Fachmann]]></dc:creator><pubDate>Thu, 26 Oct 2006 08:57:55 GMT</pubDate></item><item><title><![CDATA[Reply to Wirrwarr-zeichen bei anzeige von string der über winsock geschickt wurde^^ on Thu, 26 Oct 2006 09:05:54 GMT]]></title><description><![CDATA[<p>Was ist denn &quot;buf&quot; für ein Typ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1161712</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1161712</guid><dc:creator><![CDATA[h1]]></dc:creator><pubDate>Thu, 26 Oct 2006 09:05:54 GMT</pubDate></item><item><title><![CDATA[Reply to Wirrwarr-zeichen bei anzeige von string der über winsock geschickt wurde^^ on Thu, 26 Oct 2006 09:25:00 GMT]]></title><description><![CDATA[<p>&quot;char buf[512];&quot;</p>
<p>bei &quot;char *buf&quot; bekomm ich nämlich nen runtimeerror</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1161740</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1161740</guid><dc:creator><![CDATA[Fachmann]]></dc:creator><pubDate>Thu, 26 Oct 2006 09:25:00 GMT</pubDate></item><item><title><![CDATA[Reply to Wirrwarr-zeichen bei anzeige von string der über winsock geschickt wurde^^ on Fri, 27 Oct 2006 08:55:06 GMT]]></title><description><![CDATA[<p>also ich will noch erwähnen dass ich bei recv den lenght parameter auf 4 gestellt hab un von nem client &quot;hey&quot; geschickt hab. es kommen aber so ca. 150 ì's dabei raus.</p>
<p>sry wegen doppelpost</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1162423</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1162423</guid><dc:creator><![CDATA[Fachmann]]></dc:creator><pubDate>Fri, 27 Oct 2006 08:55:06 GMT</pubDate></item><item><title><![CDATA[Reply to Wirrwarr-zeichen bei anzeige von string der über winsock geschickt wurde^^ on Fri, 27 Oct 2006 08:59:35 GMT]]></title><description><![CDATA[<p>vielleicht hast du irgendwo einen fehler gemacht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1162430</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1162430</guid><dc:creator><![CDATA[follprovi]]></dc:creator><pubDate>Fri, 27 Oct 2006 08:59:35 GMT</pubDate></item><item><title><![CDATA[Reply to Wirrwarr-zeichen bei anzeige von string der über winsock geschickt wurde^^ on Fri, 27 Oct 2006 14:34:13 GMT]]></title><description><![CDATA[<p>Fachmann schrieb:</p>
<blockquote>
<p>&quot;char buf[512];&quot;</p>
<p>bei &quot;char *buf&quot; bekomm ich nämlich nen runtimeerror</p>
</blockquote>
<p>Warum der Typecast in<br />
server1.recvs((char*)buf,0); ?<br />
Gabs vorher eine Fehlermeldung?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1162577</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1162577</guid><dc:creator><![CDATA[h1]]></dc:creator><pubDate>Fri, 27 Oct 2006 14:34:13 GMT</pubDate></item><item><title><![CDATA[Reply to Wirrwarr-zeichen bei anzeige von string der über winsock geschickt wurde^^ on Fri, 27 Oct 2006 21:58:20 GMT]]></title><description><![CDATA[<p>nene das &quot; (char*) &quot; ist überflüssig ich habs nur grunds spontanen experimente verwendet un dann vergessen wieder zu entfernen</p>
<p>ja ich glaub auch dass ich irgentwie ein fehler gemacht hab aber ich suche schon seit tagen^^ so is das bei mir: ein zehnte der zeit programmier ich an nem projekt un die restiliche neun zehntel such ich die fehler die ich gemacht hab^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1162863</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1162863</guid><dc:creator><![CDATA[Fachmann]]></dc:creator><pubDate>Fri, 27 Oct 2006 21:58:20 GMT</pubDate></item><item><title><![CDATA[Reply to Wirrwarr-zeichen bei anzeige von string der über winsock geschickt wurde^^ on Sat, 28 Oct 2006 00:03:01 GMT]]></title><description><![CDATA[<p>Ich möchte nochmal auf msdn-infos zu recv() aufmerksam machen:</p>
<blockquote>
<p>If no error occurs, <strong>recv returns the number of bytes received.</strong> If the connection has been gracefully closed, the return value is zero.</p>
</blockquote>
<p>und:</p>
<blockquote>
<p>For connection-oriented sockets (type SOCK_STREAM for example), calling recv will return as much data as is currently available — <strong>up to the size of the buffer specified</strong>.</p>
</blockquote>
<p>Sagen wir mal du sendest &quot;HEY\0&quot; ('\0' - String-Terminierungszeichen).<br />
Das wären 4 Bytes.</p>
<p>Dein Buffer bei recv() sagen wir mal wäre 512 Bytes groß.<br />
Nun kann recv() aber z.B. alle 4 Bytes auf einmal empfangen und in den Buffer schreiben, oder aber recv() empfängt erstmal 2 Bytes und bei einem weiteren Aufruf die nächsten 2 Bytes.<br />
Wenn man nun z.B. nach einem recv() den buffer via MessageBox() ausgibt, und recv() hat erst 2 bytes empfangen, dann fehlt das String-Terminierungszeichen und er zeigt Blödsinn an <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=";D"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1162882</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1162882</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Sat, 28 Oct 2006 00:03:01 GMT</pubDate></item><item><title><![CDATA[Reply to Wirrwarr-zeichen bei anzeige von string der über winsock geschickt wurde^^ on Mon, 30 Oct 2006 19:51:17 GMT]]></title><description><![CDATA[<p>das hört sich vielversprechend an! ich probier ma rum un wenns klappt meld ich mich wieder <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="😉"
    /> thx</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1164866</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1164866</guid><dc:creator><![CDATA[Fachmann]]></dc:creator><pubDate>Mon, 30 Oct 2006 19:51:17 GMT</pubDate></item><item><title><![CDATA[Reply to Wirrwarr-zeichen bei anzeige von string der über winsock geschickt wurde^^ on Sat, 04 Nov 2006 11:20:12 GMT]]></title><description><![CDATA[<p>aber wenn ich 4 bytes schicke , die von einem recv befehl recvivt werden dann muss ich doch davon ausgehen dass die 4 bytes im buffer sind wenn der befehl &quot;recv&quot; beeendet is? recv kann ja nicht die hälfte recviven un dann returnen un dann weitermachen mmhm? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1168145</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1168145</guid><dc:creator><![CDATA[Fachmann]]></dc:creator><pubDate>Sat, 04 Nov 2006 11:20:12 GMT</pubDate></item><item><title><![CDATA[Reply to Wirrwarr-zeichen bei anzeige von string der über winsock geschickt wurde^^ on Sat, 04 Nov 2006 11:44:35 GMT]]></title><description><![CDATA[<p>Ja, wenn recv() als Rückgabewert ne 4 zurückgibt, dann hat recv() auch 4 Bytes im Buffer. Aber das ist halt nicht unbedingt gegeben dass die Buffer-Länge die man als Parameter angibt auch den gleichen Wert wie der Rückgabewert hat...</p>
<p>recv() hat halt keine Ahnung davon was wohl auf irgendeinem Rechner (auch wenn es derselbe Rechner ist) wohl mit send() verschickt worden ist. Da kann es auch schonmal passieren das selbst bei lokalen Verbindungen schonmal nicht alles sofort da ist - recv() weiss ja nicht wann es vollständig ist - Das weiss ja nur dein Programm.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1168158</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1168158</guid><dc:creator><![CDATA[geeky]]></dc:creator><pubDate>Sat, 04 Nov 2006 11:44:35 GMT</pubDate></item><item><title><![CDATA[Reply to Wirrwarr-zeichen bei anzeige von string der über winsock geschickt wurde^^ on Sat, 04 Nov 2006 15:24:51 GMT]]></title><description><![CDATA[<p>ok stimmt<br />
also ich hab per send &quot;hi&quot; geschickt (un 3 bei len eingegebn (logisch))</p>
<p>recv return nicht 3 also bin ich schon ein schritt weiter , nur wie behebt man das? ^^</p>
<p>...ich hatte eig gedacht recv weiss wieviel zeichen es bekommt weil die länge des tcppacketes doch im header des packetes gespeichert ist oder?</p>
<p>thx;), chr</p>
<p>::edit::<br />
ok recv muss die länge doch nicht wissen, sie bekommt sie ja per parameter<br />
::edit::<br />
aber wie behebt man das bzw was kann man tun?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1168191</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1168191</guid><dc:creator><![CDATA[Fachmann]]></dc:creator><pubDate>Sat, 04 Nov 2006 15:24:51 GMT</pubDate></item><item><title><![CDATA[Reply to Wirrwarr-zeichen bei anzeige von string der über winsock geschickt wurde^^ on Mon, 06 Nov 2006 12:08:03 GMT]]></title><description><![CDATA[<p>Wenn du weisst dass du 4 Bytes kriegen wirst, dann wiederholst du einfach recv() solange bis du genügend Bytes zusammen hast <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=";D"
      alt="😉"
    /></p>
<p>Irgendwie so könnte ich mir das vorstellen (Ich hoffe du hast Ahnung von Pointern ;D):</p>
<pre><code class="language-cpp">int ByteCount; // Anzahl der bereits empfangenen Bytes
int retval; // Rückgabewert von recv()
char MeinBuffer[10]; // Buffer mit Platz für 10 Bytes

ByteCount=recv(socket,MeinBuffer,10,0);
while (ByteCount&lt;4)
{
    retval=recv(socket,MeinBuffer+ByteCount,10,0);
    if (retval==SOCKET_ERROR)
    {
        // Möööp, nen Fehler mit der Verbindung!
    }
    else if (retval==0)
    {
        // Verbindung wurde geschlossen
    }
    else
    {
        ByteCount=ByteCount+retval;
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1169533</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1169533</guid><dc:creator><![CDATA[geeky (not@home)]]></dc:creator><pubDate>Mon, 06 Nov 2006 12:08:03 GMT</pubDate></item><item><title><![CDATA[Reply to Wirrwarr-zeichen bei anzeige von string der über winsock geschickt wurde^^ on Fri, 10 Nov 2006 13:22:16 GMT]]></title><description><![CDATA[<p>also lieber geekky, erstmal danke fürn aufwand</p>
<p>das hörst sich sicher und gut an aber dazu muss man ja wissen wieviel bytes geschickt wurden, das is ja scheisse , bei nem chat^^ , irgentwie machen einem so sachen ganz nicht mehr programmieren wollend^^ ...ich glaub ich steig um auf logo;)</p>
<p>...also ich versuch deine methode ma un sag ma danke</p>
<p>ps.: ja ich hab ne ahnung von pointern <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1172191</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1172191</guid><dc:creator><![CDATA[Fachmann]]></dc:creator><pubDate>Fri, 10 Nov 2006 13:22:16 GMT</pubDate></item></channel></rss>