<?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[send() strings werden vermengt??]]></title><description><![CDATA[<p>ich sende relativ schnell mit dem server nachrichten an den client. die nachrichten sind so aufgebaut:<br />
(beispiel)<br />
000@004@NAMEtext<br />
000 steh für normale textnachricht, 004 für die länge des namens...</p>
<p>nun passiert manchmal folgendes:</p>
<pre><code>Konnte zu 127.0.0.1 verbinden
[SERVER]: Name ist bereits vergeben!000@006@SERVERKein Username angegeben(Verbindung getrennt)
Connection Error
Konnte zu 127.0.0.1 verbinden
[SERVER]: Name ist bereits vergeben!
[SERVER]: Kein Username angegeben(Verbindung getrennt)
Connection Error
</code></pre>
<p>bei der ersten trennung wurden zwei nachrichten scheibar zusammen empfangen und so konnte die zweite nicht richtig interpretiert werden.. oO das ist nicht nur ärgerlich sondern ein problem...wie kann ich sowas verhindern?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/79525/send-strings-werden-vermengt</link><generator>RSS for Node</generator><lastBuildDate>Mon, 13 Apr 2026 01:14:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/79525.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 12 Jul 2004 10:13:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to send() strings werden vermengt?? on Mon, 12 Jul 2004 10:13:38 GMT]]></title><description><![CDATA[<p>ich sende relativ schnell mit dem server nachrichten an den client. die nachrichten sind so aufgebaut:<br />
(beispiel)<br />
000@004@NAMEtext<br />
000 steh für normale textnachricht, 004 für die länge des namens...</p>
<p>nun passiert manchmal folgendes:</p>
<pre><code>Konnte zu 127.0.0.1 verbinden
[SERVER]: Name ist bereits vergeben!000@006@SERVERKein Username angegeben(Verbindung getrennt)
Connection Error
Konnte zu 127.0.0.1 verbinden
[SERVER]: Name ist bereits vergeben!
[SERVER]: Kein Username angegeben(Verbindung getrennt)
Connection Error
</code></pre>
<p>bei der ersten trennung wurden zwei nachrichten scheibar zusammen empfangen und so konnte die zweite nicht richtig interpretiert werden.. oO das ist nicht nur ärgerlich sondern ein problem...wie kann ich sowas verhindern?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/558684</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/558684</guid><dc:creator><![CDATA[pixartist]]></dc:creator><pubDate>Mon, 12 Jul 2004 10:13:38 GMT</pubDate></item><item><title><![CDATA[Reply to send() strings werden vermengt?? on Mon, 12 Jul 2004 12:18:10 GMT]]></title><description><![CDATA[<p>recv() empfängt einen Bytestrom, der von send() gesendet wird. Unterschiedliche send()-Aufrufe ergeben trotzdem nur einen großen Bytestrom.<br />
Deswegen musst du selbst dafür sorgen, dass dein Programm das Ende einer Nachricht erkennt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/558802</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/558802</guid><dc:creator><![CDATA[Christoph]]></dc:creator><pubDate>Mon, 12 Jul 2004 12:18:10 GMT</pubDate></item><item><title><![CDATA[Reply to send() strings werden vermengt?? on Mon, 12 Jul 2004 14:49:01 GMT]]></title><description><![CDATA[<p>echt? aua dann mussich aber ne menge ändern oO<br />
bzw womit kann man denn das ende einer nachricht markieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/558964</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/558964</guid><dc:creator><![CDATA[pixartist]]></dc:creator><pubDate>Mon, 12 Jul 2004 14:49:01 GMT</pubDate></item><item><title><![CDATA[Reply to send() strings werden vermengt?? on Mon, 12 Jul 2004 14:51:34 GMT]]></title><description><![CDATA[<p>hallo Pixartist.</p>
<p>Mache das ganze in einer Struktur.<br />
also so ungefähr:</p>
<pre><code class="language-cpp">typedef struct tagNETWORKPACKET
{
unsigned short int Type; //Hierfür kannste deine eigenen Konstanten definieren
unsigned short int DataSize; //hier ist die Anzahl der BYTES in [Data] die beachtet werden müssen.
BYTE Data[4096-(2*sizeof(unsigned short int))]; 
} NETWORKPACKET;
</code></pre>
<p>Deine datenpakete ahben dann IMMER eine fixe Größe von 4KB und du weist wie viel du mit recv() einlesen musst <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>Sicher kannst du die Struktur ja noch deinen Bedürfnissen anpassen..</p>
<p>Und hier die Antworten auf paar Anfängerfragen die ich mir stellte als ich zum ersten mal strukturen versenden wollte:</p>
<p>1.Wie kann man ne Struktur send() übergeben und senden?<br />
- Ganz einfach bei send als datasource die Adresse der Struktur übergeben und weil diese so allein nciht akzeptiert wird (send will ja char*) einfach casten mit:</p>
<pre><code class="language-cpp">(LPBYTE)&amp;DataPacket
</code></pre>
<p>2.Wie kann man ne Struktur einlesen mit recv()?<br />
- Auch ganz einfach. Einfach eine Struktur des typs NETWORKPACKET erstellen und recv() als Größe</p>
<pre><code class="language-cpp">sizeof(NETWORKPACKET)
</code></pre>
<p>übergebn und als destination die adresse der erstellten Instanz der Struktur NETWORKPACKET.</p>
<p>MfG Tolga.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/558974</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/558974</guid><dc:creator><![CDATA[Tolga]]></dc:creator><pubDate>Mon, 12 Jul 2004 14:51:34 GMT</pubDate></item><item><title><![CDATA[Reply to send() strings werden vermengt?? on Mon, 12 Jul 2004 16:27:42 GMT]]></title><description><![CDATA[<p>oO das hab ich jetzt nich ganz durchblickt..da muss ich mal mit beschäftigen. willst du sagen das man statt chars auch ganze objekte(instanzen) übergeben kann?</p>
<pre><code class="language-cpp">typedef struct tagNETWORKPACKET 
{ 
unsigned short int Type; //Hierfür kannste deine eigenen Konstanten definieren 
unsigned short int DataSize; //hier ist die Anzahl der BYTES in [Data] die beachtet werden müssen. 
BYTE Data[4096-(2*sizeof(unsigned short int))]; 
} NETWORKPACKET;
</code></pre>
<p>was mach ich jetzt genau hiermit? ich habs leider nicht ganz verstanden <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="😉"
    /> muss ich bei rcv als grösse sizeof(NETWORKPACKET) angben...und sonst noch? ich muss doch dann auch bei versenden immer genau 4kb verschicken? und was heisst jetzt BYTE Data[4096-(2*sizeof(unsigned short int))]; genau?<br />
fragen über fragen <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="😉"
    /><br />
ich glaub am besten würd ichs kapieren wenn du beispielshalber was einefaches versendest und wieder empfängst...mit einer spezifizierten grösse!</p>
<p>PS: WAS genau muss ich IN einee struktur machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/559034</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/559034</guid><dc:creator><![CDATA[pixartist]]></dc:creator><pubDate>Mon, 12 Jul 2004 16:27:42 GMT</pubDate></item><item><title><![CDATA[Reply to send() strings werden vermengt?? on Mon, 12 Jul 2004 18:07:57 GMT]]></title><description><![CDATA[<p>pixartist schrieb:</p>
<blockquote>
<pre><code class="language-cpp">typedef struct tagNETWORKPACKET 
{ 
unsigned short int Type; //Hierfür kannste deine eigenen Konstanten definieren 
unsigned short int DataSize; //hier ist die Anzahl der BYTES in [Data] die beachtet werden müssen. 
BYTE Data[4096-(2*sizeof(unsigned short int))]; 
} NETWORKPACKET;
</code></pre>
<p>WAS genau muss ich IN einee struktur machen?</p>
</blockquote>
<p>habe ich doch schon erklärt..<br />
die struktur hat 3 elemente.<br />
Type, DataSize und Data. data enthälr deine Daten. In datasize steht anzahl der bytes die der Remote -wenn er die struktur mit recv() einliest- verarbeitet. Somit hat sihc das Problem mitm trennzeichen erledigt. Denn in DataSize steht ja wo ende ist. Wenn DataSize 223 ist dass ist beim 223. Byte Ende!</p>
<p>In Type stehn dann die konstanten:</p>
<p>z.b.</p>
<pre><code class="language-cpp">//Data-Type Constants...
#define DT_DATA 		0
#define DT_ABORT 		1
#define DT_INFO		2
#define DT_SYSTEMCOMMAND 	3
bla.. bla.. bla.... usw.
</code></pre>
<p>Und Dein Server erhält dann die Struktur und sieht in nach was für daten sich in data befinden und jenachdem verarbeitet er diese daten. Mit DT_DATA kannste z.b. chat-text senden. Mit DT_SYSTEMCOMMAND sonderbefehle, die für technische Kommunikation zwischen Client und Server stattfindet...</p>
<p>Damit hast du den Mist mit den Trennzeichen nciht mehr zu bewältigen.</p>
<p>PS: Sicher kann man strukturen senden da diese nichts als Speicherberecihe sind die byteweise über einen Pointer engelesen werden.</p>
<p>Aus Erfahrung kann ich sagen, bei Netzwerkanwendungen sind Strukturen das aller Beste. (Meine persönliche Meinung)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/559084</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/559084</guid><dc:creator><![CDATA[Tolga]]></dc:creator><pubDate>Mon, 12 Jul 2004 18:07:57 GMT</pubDate></item><item><title><![CDATA[Reply to send() strings werden vermengt?? on Mon, 12 Jul 2004 18:37:58 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/8357">@Tolga</a>:</p>
<p>Wäre es nicht besser, wenn man erst die Größe der Struktur sendet und dannach die Struktur? Dann verschwendet man nicht soviel Bandbreite.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/559109</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/559109</guid><dc:creator><![CDATA[sizeof(int)]]></dc:creator><pubDate>Mon, 12 Jul 2004 18:37:58 GMT</pubDate></item><item><title><![CDATA[Reply to send() strings werden vermengt?? on Mon, 12 Jul 2004 19:38:20 GMT]]></title><description><![CDATA[<p>Ich schlage folgendes vor:</p>
<pre><code class="language-cpp">struct Packet
{
	unsigned crc32; //crc des ganzen Packets, beginned mit dem size Member
	unsigned size; //Größe von pData;
	//BYTE pData[size];
};
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/559122</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/559122</guid><dc:creator><![CDATA[Shlo]]></dc:creator><pubDate>Mon, 12 Jul 2004 19:38:20 GMT</pubDate></item><item><title><![CDATA[Reply to send() strings werden vermengt?? on Mon, 12 Jul 2004 19:18:05 GMT]]></title><description><![CDATA[<p>Warum ist pData auskommentiert? Hat das irgendwas zu bedeuten? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/559137</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/559137</guid><dc:creator><![CDATA[hihi]]></dc:creator><pubDate>Mon, 12 Jul 2004 19:18:05 GMT</pubDate></item><item><title><![CDATA[Reply to send() strings werden vermengt?? on Mon, 12 Jul 2004 19:25:54 GMT]]></title><description><![CDATA[<p>uff so ich pack nicht wie man structs verwendet!<br />
folgende vorraussetzung:</p>
<pre><code class="language-cpp">string buffer = &quot;das willich versenden&quot;;
int i = 10; //und das auch
//und zwar mit einem einzigen send!

//beim rcv möchte ich dann jeweils die daten wieder in eigene variablen tun!
//ich würde mich freuen wenn mir wer n kurzes beisp dazu amchen könnte DANKE! :)

send(s,???,???,0);
/*
...
*/
??? = recv(s);
</code></pre>
<p>danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/559142</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/559142</guid><dc:creator><![CDATA[pixartist]]></dc:creator><pubDate>Mon, 12 Jul 2004 19:25:54 GMT</pubDate></item><item><title><![CDATA[Reply to send() strings werden vermengt?? on Mon, 12 Jul 2004 19:27:03 GMT]]></title><description><![CDATA[<p>Das kommt davon wenn man sich ständig weigert, endlich mal C/C++-Grundlagen zu erlernen.</p>
<p>Spätestens jetzt siehst Du, was Du davon hast... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/559145</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/559145</guid><dc:creator><![CDATA[Hepi]]></dc:creator><pubDate>Mon, 12 Jul 2004 19:27:03 GMT</pubDate></item><item><title><![CDATA[Reply to send() strings werden vermengt?? on Mon, 12 Jul 2004 19:56:13 GMT]]></title><description><![CDATA[<p>hihi schrieb:</p>
<blockquote>
<p>Warum ist pData auskommentiert? Hat das irgendwas zu bedeuten? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
</blockquote>
<p>Das liegt daran, dass pData eine variable Größe hat und der Speicher dafür außerhalb der Struktur reserviert wird. Der Vorteil vom Ganzen ist, dass man jedes Mal den Header einlesen kann, (die Packet struct) und danach folgen die eigentlichen Daten (pData) <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/559156</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/559156</guid><dc:creator><![CDATA[Shlo]]></dc:creator><pubDate>Mon, 12 Jul 2004 19:56:13 GMT</pubDate></item><item><title><![CDATA[Reply to send() strings werden vermengt?? on Mon, 12 Jul 2004 19:39:33 GMT]]></title><description><![CDATA[<p>Hepi schrieb:</p>
<blockquote>
<p>Das kommt davon wenn man sich ständig weigert, endlich mal C/C++-Grundlagen zu erlernen.</p>
<p>Spätestens jetzt siehst Du, was Du davon hast... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
</blockquote>
<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="👍"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <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>
]]></description><link>https://www.c-plusplus.net/forum/post/559157</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/559157</guid><dc:creator><![CDATA[Shlo]]></dc:creator><pubDate>Mon, 12 Jul 2004 19:39:33 GMT</pubDate></item><item><title><![CDATA[Reply to send() strings werden vermengt?? on Mon, 12 Jul 2004 20:40:38 GMT]]></title><description><![CDATA[<p>jo geile antwort...ich weiss zwar nicht was das versenden von strukturen mit winsock mit grundlagen am hut hat, aber deine antwort hat mich richtig weitergebracht...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/559186</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/559186</guid><dc:creator><![CDATA[pixartist]]></dc:creator><pubDate>Mon, 12 Jul 2004 20:40:38 GMT</pubDate></item><item><title><![CDATA[Reply to send() strings werden vermengt?? on Mon, 12 Jul 2004 20:46:44 GMT]]></title><description><![CDATA[<p>pixartist schrieb:</p>
<blockquote>
<p>jo geile antwort...ich weiss zwar nicht was das versenden von strukturen mit winsock mit grundlagen am hut hat, aber deine antwort hat mich richtig weitergebracht...</p>
</blockquote>
<p>Naja... send() hat von der Logik her viel mit fwrite() (eine Standard-C-Funktion) gemeinsam. Du kannst damit eben nicht nur Textstrings, sondern beliebige Bytes verschicken.</p>
<p>Evtl. musst du die struct erst in einen solchen Bytestrom umwandeln (Stichwort casten).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/559190</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/559190</guid><dc:creator><![CDATA[Christoph]]></dc:creator><pubDate>Mon, 12 Jul 2004 20:46:44 GMT</pubDate></item><item><title><![CDATA[Reply to send() strings werden vermengt?? on Mon, 12 Jul 2004 21:37:34 GMT]]></title><description><![CDATA[<p>also per (long)variable<br />
edit: hab mich mal beim msdn nach structs erkundigt..komme langsam dahinter<br />
edit2: ahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh</p>
<pre><code class="language-cpp">typedef struct tagNETWORKPACKET 
{ 
unsigned short int Type; //Hierfür kannste deine eigenen Konstanten definieren 
unsigned short int DataSize; //hier ist die Anzahl der BYTES in [Data] die beachtet werden müssen. 
BYTE Data[4096-(2*sizeof(unsigned short int))]; 
} NETWORKPACKET;
</code></pre>
<p>JETZT kapier ich was du da machst oO mensch das kann man aber auch einfacher erklähren ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/559212</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/559212</guid><dc:creator><![CDATA[pixartist]]></dc:creator><pubDate>Mon, 12 Jul 2004 21:37:34 GMT</pubDate></item><item><title><![CDATA[Reply to send() strings werden vermengt?? on Mon, 12 Jul 2004 22:22:46 GMT]]></title><description><![CDATA[<p>wie komm ich denn auf const *char? mit LPBYTE krieg ich ja unsigned *char</p>
]]></description><link>https://www.c-plusplus.net/forum/post/559226</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/559226</guid><dc:creator><![CDATA[pixartist]]></dc:creator><pubDate>Mon, 12 Jul 2004 22:22:46 GMT</pubDate></item><item><title><![CDATA[Reply to send() strings werden vermengt?? on Tue, 13 Jul 2004 07:19:31 GMT]]></title><description><![CDATA[<p>Vielleicht LPCSTR <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/559297</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/559297</guid><dc:creator><![CDATA[flenders]]></dc:creator><pubDate>Tue, 13 Jul 2004 07:19:31 GMT</pubDate></item><item><title><![CDATA[Reply to send() strings werden vermengt?? on Tue, 13 Jul 2004 08:54:05 GMT]]></title><description><![CDATA[<p>pixartist schrieb:</p>
<blockquote>
<p>wie komm ich denn auf const *char? mit LPBYTE krieg ich ja unsigned *char</p>
</blockquote>
<p>(LPBYTE) wird von recv() und send() akzeptiert und mit Erfolg verarbeitet!<br />
Du solltest BYTES und keine chars senden. Bei manchen Compilers ist char als signed char definiert. Dann hast du evtl. Probleme. Du musst entweder unsigned char oder gleich BYTE benutzen.</p>
<p>BYTE ist folgenderweise definiert:</p>
<pre><code class="language-cpp">#define BYTE unsigned char
</code></pre>
<p>Auf das 'unsigned' kommts an.<br />
Deswegen solltest du nciht nach (const char*) sondern nach (LPBYTE) oder nach (const unsigned char*) casten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/559350</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/559350</guid><dc:creator><![CDATA[Tolga]]></dc:creator><pubDate>Tue, 13 Jul 2004 08:54:05 GMT</pubDate></item><item><title><![CDATA[Reply to send() strings werden vermengt?? on Tue, 13 Jul 2004 09:48:40 GMT]]></title><description><![CDATA[<pre><code>D:\Programme\C++ files\MSDev98\MyProjects\WinSockets\WinSockClient\main.cpp(150) : error C2664: 'send' : Konvertierung des Parameters 2 von 'unsigned char *' in 'const char *' nicht moeglich
</code></pre>
<p>mist ich kann als destination nicht die adresse von der struktur angeben! rcv gibt immer nen char zurück!<br />
ich kann aber auch keinen char in ne struct casten</p>
]]></description><link>https://www.c-plusplus.net/forum/post/559374</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/559374</guid><dc:creator><![CDATA[pixartist]]></dc:creator><pubDate>Tue, 13 Jul 2004 09:48:40 GMT</pubDate></item><item><title><![CDATA[Reply to send() strings werden vermengt?? on Tue, 13 Jul 2004 09:45:39 GMT]]></title><description><![CDATA[<p>Dem Borland 5.5 machts nix aus.<br />
Dann caste einfach nach (const char*)..<br />
Aber ich wüsste gern welchen Compiler du hast..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/559394</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/559394</guid><dc:creator><![CDATA[Tolga]]></dc:creator><pubDate>Tue, 13 Jul 2004 09:45:39 GMT</pubDate></item><item><title><![CDATA[Reply to send() strings werden vermengt?? on Tue, 13 Jul 2004 09:57:15 GMT]]></title><description><![CDATA[<p>Microsoft Visual C++<br />
wie kriege ich denn aus dem rcv n netpack?</p>
<pre><code class="language-cpp">char *x = new char[sizeof(pack)];
rc=recv(s,x,sizeof(pack),0);
pack = (netPack)x;
</code></pre>
<p>so schonmal nicht?</p>
<pre><code class="language-cpp">rc=recv(s,&amp;pack,sizeof(pack),0);
</code></pre>
<p>so aber auchnicht!<br />
beim zweiten gibs</p>
<pre><code>D:\Programme\C++ files\MSDev98\MyProjects\WinSockets\WinSockClient\main.cpp(212) : error C2664: 'recv' : Konvertierung des Parameters 2 von 'struct netPack *' in 'char *' nicht moeglich
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/559401</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/559401</guid><dc:creator><![CDATA[pixartist]]></dc:creator><pubDate>Tue, 13 Jul 2004 09:57:15 GMT</pubDate></item><item><title><![CDATA[Reply to send() strings werden vermengt?? on Tue, 13 Jul 2004 10:17:16 GMT]]></title><description><![CDATA[<p>Die anderen haben es schon sehr treffend gesagt:<br />
Du kannst nciht mal die einfachsten Grundlagen der Sprache C++!</p>
<p>ZU deinem geposteten Code:</p>
<pre><code class="language-cpp">char *x = new char[sizeof(pack)];
rc=recv(s,x,sizeof(pack),0);
pack = (netPack)x; 

so schonmal nicht? 
C/C++ Code: 
rc=recv(s,&amp;pack,sizeof(pack),0); 
C/C++ Code: 
rc=recv(s,&amp;pack,sizeof(pack),0);
</code></pre>
<p>...ist Murks: (WAS genau falsch ist werd eich cniht erklären da das einfach zu den Grundlagen gehört und nciht ins WINAPI-Forum passt)</p>
<p>So muss es sein:</p>
<pre><code class="language-cpp">/*Ich gehe mal davon aus, die struct - netPack haste schon deklariert!*/

netPack foo; //Eine Instanz wird erzeugt! (heißt &quot;foo&quot; !!!)
rc=recv(s,(LPCSTR)&amp;foo,sizeof(netPack),0); //Die Instanz wird mit den vom Remote gesendeten Inhalt gefüllt.
</code></pre>
<p>PS: Darf ich wissen wie alt du bist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/559424</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/559424</guid><dc:creator><![CDATA[Tolga]]></dc:creator><pubDate>Tue, 13 Jul 2004 10:17:16 GMT</pubDate></item><item><title><![CDATA[Reply to send() strings werden vermengt?? on Tue, 13 Jul 2004 11:24:06 GMT]]></title><description><![CDATA[<p>DAS waren 2! verschiedene ansätze man!<br />
das zweite war ein ausschnitt hierraus:</p>
<pre><code class="language-cpp">char *recieve(netPack pack)
		{
			rc=recv(s,&amp;pack,sizeof(pack),0);
			//pack = (netPack)x;
			//if(rc==0 || rc==SOCKET_ERROR)
				//return &quot;&quot;;
			return pack;
		}
</code></pre>
<p>pack ist eine instanz von netPack (struct) und ich wusste nicht das ich das pack einfach in dem recieve in nen char casten kann ! ich hatte es genauso wie du es geschrieben hast, nur hab ich das casten nicht dringehabt...<br />
so kriege ich da schonmal keinen error mehr:</p>
<pre><code class="language-cpp">netPack *recieve(netPack pack)
		{
			rc=recv(s,(LPSTR)&amp;pack,sizeof(pack),0);
			//pack = (netPack)x;
			//if(rc==0 || rc==SOCKET_ERROR)
				//return &quot;&quot;;
			return pack;
		}
</code></pre>
<p>ich bin übrigens 18</p>
]]></description><link>https://www.c-plusplus.net/forum/post/559502</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/559502</guid><dc:creator><![CDATA[pixartist]]></dc:creator><pubDate>Tue, 13 Jul 2004 11:24:06 GMT</pubDate></item><item><title><![CDATA[Reply to send() strings werden vermengt?? on Tue, 13 Jul 2004 12:32:50 GMT]]></title><description><![CDATA[<p>pixartist schrieb:</p>
<blockquote>
<p>DAS waren 2! verschiedene ansätze man!<br />
das zweite war ein ausschnitt hierraus:</p>
<pre><code class="language-cpp">char *recieve(netPack pack)
		{
			rc=recv(s,&amp;pack,sizeof(pack),0);
			//pack = (netPack)x;
			//if(rc==0 || rc==SOCKET_ERROR)
				//return &quot;&quot;;
			return pack;
		}
</code></pre>
</blockquote>
<p>...da schauen wir mal alle weg!! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /></p>
<p>pixartist schrieb:</p>
<blockquote>
<p>ich hatte es genauso wie du es geschrieben hast, nur hab ich das casten nicht dringehabt...</p>
</blockquote>
<p>'Nur'?? Ein Fehler genügt um zu sagen das es falsch ist!</p>
<p>pixartist schrieb:</p>
<blockquote>
<pre><code class="language-cpp">netPack *recieve(netPack pack)
		{
			rc=recv(s,(LPSTR)&amp;pack,sizeof(pack),0);
			//pack = (netPack)x;
			//if(rc==0 || rc==SOCKET_ERROR)
				//return &quot;&quot;;
			return pack;
		}
</code></pre>
</blockquote>
<p>...ist Murks.<br />
Gleich kannste wieder sagen :&quot;Ich hatte dasselbe wie du sagst NUR....&quot; <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>Der obige Code ist unsinnig, syntaktisch sowie logisch falsch und sollte sich cniht kompilieren lassen. Und selbst wenn du eine Kompilation erzwingst sollte es cniht klappen. DENN:</p>
<p>1.Der Returnwert deiner Funktion soll ein<br />
netPack-Pointer sein aber du returnst KEINEN POINTER!</p>
<p>2.Du hast bei recv() ein &quot;sizeof(pack)&quot; stehn. Bei sizeof gibt man als parameter aber keine instanznamen sondern den datentyp -in diesem falle: netPack- an.</p>
<p>3. Als Parameter nimmt deine Funktion eine KOPIE(!!!) einer übergebenen netPack-Instanz. Und diese LOKALE KOPIE, die ausschließlich im scope der Funktion gültig ist füllst du mit daten und glaubst ihn returnen zu können. Kannst du aber nicht, da diese Kopie wie gesgat nur im Gültigkeitsbereich der Funktion gilt und nach dem Zurückkehren der Funktion kann keiner mehr auf die Daten in dem 'return'ten' struct zugreifen.</p>
<p>Heute bin ich besonders nett und erspare dir 6 weitere Fragen sowie 4 Stunden suchzeit:</p>
<pre><code class="language-cpp">void recieve(netPack* pack)
		{
			rc=recv(s,(LPSTR)pack,sizeof(netPack),0);
		}
</code></pre>
<p>4.Du führst uns bombenfeste beweise für deine mangelnden GRUND-Kentnisse vor. Da kann dich keiner mehr widerlegen. Nun hast du uns überzeugt. Du kannst die Grnudlagen wirklich nicht. <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="😉"
    /> (Geh in dei Stadtbib. und hol dir ein buch)</p>
<p>MfG Tolga.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/559594</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/559594</guid><dc:creator><![CDATA[Tolga]]></dc:creator><pubDate>Tue, 13 Jul 2004 12:32:50 GMT</pubDate></item><item><title><![CDATA[Reply to send() strings werden vermengt?? on Tue, 13 Jul 2004 13:28:21 GMT]]></title><description><![CDATA[<p>Warum wird eigentlich in den meisten Protokollen mit Strings gearbeitet, wenn es eigentlich mit Strukturen viel einfacher geht?</p>
<p>Shlo: Brauch man die crc32 checksum wirklich bei TCP/IP? Wird das nicht automatisch durch TCP/IP überprüft und ggf. neugesendet?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/559671</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/559671</guid><dc:creator><![CDATA[Unwissende]]></dc:creator><pubDate>Tue, 13 Jul 2004 13:28:21 GMT</pubDate></item></channel></rss>