<?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[TServerSocket und fehlende Bytes bei Übertragung]]></title><description><![CDATA[<p>Hallo ...</p>
<p>Ich habe ein Programm für einnen PocketPc (PPC) geschrieben und das schickt mittels WLan Messwerte zu meinem Desktop . Zum Empfangen meiner Daten benutze ich die TServerSocket Komponente (BCB6) und ich bekomme auch Werte. Das grosse Problem ist aber, dass ich in unregelmässigen Abständen, die falsche Anzahl an Bytes erhalte. Normalerweise verschicke ich 512 Byte, und das 3 Mal pro Sekunde für die WLan Verbindung. Tritt der Fehler auf werden weniger Bytes empfangen und gleichzeitig fehlen dadurch einige Messwerte.<br />
Das PPC Programm funzt ordentlich, habe es schon getestet. Es sendet die richtige Anzahl an Byte weg.<br />
Wo liegt da denn das Problem?</p>
<pre><code>void __fastcall TForm5::ServerSocket1ClientRead(TObjekt *Sender, TCustomWinSocket *Socket)
{
   Byte buffer[512];
   int wert = Socket-&gt;ReceiveBuf(&amp;buffer,512);
   Form1-&gt;Memo2-&gt;Lines-&gt;Add(wert);  // Ausgabe in einem Memofeld
}
</code></pre>
<p>PS: Habe auch schon versucht das ganze in grösseren Zeitabständen zu verschicken, aber das Problem war das selbe.....</p>
<p>mfg<br />
devilempire</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/94381/tserversocket-und-fehlende-bytes-bei-übertragung</link><generator>RSS for Node</generator><lastBuildDate>Fri, 10 Jul 2026 06:59:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/94381.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 08 Dec 2004 15:18:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to TServerSocket und fehlende Bytes bei Übertragung on Wed, 08 Dec 2004 15:18:38 GMT]]></title><description><![CDATA[<p>Hallo ...</p>
<p>Ich habe ein Programm für einnen PocketPc (PPC) geschrieben und das schickt mittels WLan Messwerte zu meinem Desktop . Zum Empfangen meiner Daten benutze ich die TServerSocket Komponente (BCB6) und ich bekomme auch Werte. Das grosse Problem ist aber, dass ich in unregelmässigen Abständen, die falsche Anzahl an Bytes erhalte. Normalerweise verschicke ich 512 Byte, und das 3 Mal pro Sekunde für die WLan Verbindung. Tritt der Fehler auf werden weniger Bytes empfangen und gleichzeitig fehlen dadurch einige Messwerte.<br />
Das PPC Programm funzt ordentlich, habe es schon getestet. Es sendet die richtige Anzahl an Byte weg.<br />
Wo liegt da denn das Problem?</p>
<pre><code>void __fastcall TForm5::ServerSocket1ClientRead(TObjekt *Sender, TCustomWinSocket *Socket)
{
   Byte buffer[512];
   int wert = Socket-&gt;ReceiveBuf(&amp;buffer,512);
   Form1-&gt;Memo2-&gt;Lines-&gt;Add(wert);  // Ausgabe in einem Memofeld
}
</code></pre>
<p>PS: Habe auch schon versucht das ganze in grösseren Zeitabständen zu verschicken, aber das Problem war das selbe.....</p>
<p>mfg<br />
devilempire</p>
]]></description><link>https://www.c-plusplus.net/forum/post/668852</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/668852</guid><dc:creator><![CDATA[evilempire81]]></dc:creator><pubDate>Wed, 08 Dec 2004 15:18:38 GMT</pubDate></item><item><title><![CDATA[Reply to TServerSocket und fehlende Bytes bei Übertragung on Wed, 08 Dec 2004 16:20:02 GMT]]></title><description><![CDATA[<p>Ich denke nicht das das Senden ansich das Problem darstellt. Hast du ein Protokoll entwickelt, das dir Anfang und Ende der Messwerte kennzeichnet? Wenn nicht, dann lies dir mal folgenden FAQ-Beitrag durch: <a href="http://www.c-plusplus.net/forum/viewtopic.php?t=43719" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic.php?t=43719</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/668905</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/668905</guid><dc:creator><![CDATA[PuppetMaster2k]]></dc:creator><pubDate>Wed, 08 Dec 2004 16:20:02 GMT</pubDate></item><item><title><![CDATA[Reply to TServerSocket und fehlende Bytes bei Übertragung on Thu, 09 Dec 2004 07:36:49 GMT]]></title><description><![CDATA[<p>Danke für Antwort deine Antwort, aber ich benutze bereits ein 11 Byte grosses Protokoll : 2x 0x7F als Synchronbytes und der Rest sind meine Daten. Durch die Synchronbytes weiss ich immer wo mein Datenpaket beginnt.<br />
Ich habe gestern aber noch herausgefunden, dass ich mit meinem PPC immer konstant 512 Byte als ein Paket rausschicke, aber auf der PC Seite diese Pakete zum Teil aneinander kleben. Also hab ich Pakete die grösser sind als 512 Byte. Ich habe auch noch errechnet, dass wenn man die falschen Pakete zusammenrechnet immer eine durch 512 teilbare Zahl entsteht.</p>
<pre><code>void __fastcall TForm5::ServerSocket1ClientRead(TObjekt *Sender, TCustomWinSocket *Socket)
{
   Byte buffer[5000];
   int wert_length = Socket-&gt;ReceiveLength();
   int wert = Socket-&gt;ReceiveBuf(&amp;buffer,wert_length);
   Form1-&gt;Memo2-&gt;Lines-&gt;Add(wert);  // Ausgabe in einem Memofeld
   Form1-&gt;Memo1-&gt;Lines-&gt;Add(wert_length);
}
</code></pre>
<p>Ich könnte mir vorstellen, dass es vielleicht Hardwareseitig irgendwo ein Problem gibt. Kann ich irgendwie anderst testen, was mein PC über sein WLan empfängt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/669271</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/669271</guid><dc:creator><![CDATA[evilempire81]]></dc:creator><pubDate>Thu, 09 Dec 2004 07:36:49 GMT</pubDate></item><item><title><![CDATA[Reply to TServerSocket und fehlende Bytes bei Übertragung on Sun, 12 Dec 2004 14:05:29 GMT]]></title><description><![CDATA[<p>Scheint mir trotzdem ein Protokoll-Problem zu sein. Das Abschicken eines Paketes auf der Sendeseite heißt noch lange nicht, daß dieses Paket auch als Paket über das Netz übertragen wird. Und beim Lesen auf der Empfängerseite liest du die im symstemeigenen Empfangspuffer vorhanden Bytes aus. Und dort sind soviele Bytes, wie im Moment des Lesen gerade drin sind. Im übrigen mußt du sicherstellen, daß 0x7f nie als Nutzdatum vorkommt.</p>
<p>Rob'</p>
]]></description><link>https://www.c-plusplus.net/forum/post/671575</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/671575</guid><dc:creator><![CDATA[Rob&#x27;]]></dc:creator><pubDate>Sun, 12 Dec 2004 14:05:29 GMT</pubDate></item><item><title><![CDATA[Reply to TServerSocket und fehlende Bytes bei Übertragung on Mon, 13 Dec 2004 07:51:11 GMT]]></title><description><![CDATA[<p>Was hat 0x7F mit dem Nutzdatum zu tun ?? Und welcher Wert wird nicht als Nutzdatum verwendet. Hast du eine Lösung wie ich eine fehlerfreie Kommunikation aufbaue. ? Vielleicht wäre es sinnvoll den systemeigenen Eingangspuffer immer zu leeren, wenn das gehen würde ? Vielleicht sollte ich es mal mit einem Stream ausprobieren, aber ich denke mal ein Stream nütz nur bei ungleichen Datenlängen, oder ? Ich hab jetzt auch mal probiert anstatt den BCB6, den M$ Visual $tudio .Net Compiler zu verwenden und ich habe das Gefühl das sich die Pakete nur noch seltener zusammenfügen, aber der Fehler ist der selbe.</p>
<p>für jede Lösung wäre ich dankbar...</p>
<p>mfg<br />
devilempire</p>
]]></description><link>https://www.c-plusplus.net/forum/post/672058</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/672058</guid><dc:creator><![CDATA[evilempire81]]></dc:creator><pubDate>Mon, 13 Dec 2004 07:51:11 GMT</pubDate></item><item><title><![CDATA[Reply to TServerSocket und fehlende Bytes bei Übertragung on Tue, 14 Dec 2004 12:00:18 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>mach das doch einfach so.</p>
<pre><code class="language-cpp">void __fastcall TForm1::Button1Click(TObject *Sender)
{
 AnsiString Buff = Edit1-&gt;Text;
 ServerSocket1-&gt;Socket-&gt;Connections[0]-&gt;SendText(Buff);
}

void __fastcall TForm1::ClientSocket1Read(TObject *Sender,
      TCustomWinSocket *Socket)
{
 AnsiString RecBuff = Socket-&gt;ReceiveText();;
 Memo1-&gt;Lines-&gt;Add(RecBuff);
}
</code></pre>
<p>Würde die Daten aber mit Zeichen in den String packen.</p>
<p>z.B. so ...</p>
<pre><code class="language-cpp">void __fastcall TForm1::Button1Click(TObject *Sender)
{
 AnsiString Buff = &quot;#&quot; + Edit1-&gt;Text + &quot;#&quot; + Edit1-&gt;Text.Length() + &quot;#&quot;;
 ServerSocket1-&gt;Socket-&gt;Connections[0]-&gt;SendText(Buff);
}
</code></pre>
<p>... das dann mit ner for - Schleife auslesen ...</p>
<pre><code class="language-cpp">void __fastcall TForm1::ClientSocket1Read(TObject *Sender,
      TCustomWinSocket *Socket)
{
 AnsiString Daten;
 AnsiString Test;
 int Count;

 if (RecBuff.SubString(1,strlen(&quot;#&quot;))==&quot;#&quot;)    
     {
      for (int a=2; RecBuff[a]!=RecBuff[1]; a++)
           {
            Daten = Daten + RecBuff[a];
            Count++;
          }

      for (int b=2+Count+1; RecBuff[b]!=RecBuff[1]; b++)
           {
            Test=Test+RecBuff[b];
           }

      if (Count == StrToInt(Text)) 
          {
           Memo1-&gt;Lines-&gt;Add(Daten);
          }
      else
          {
           //Befehl an Client zurück schicken das Daten neu gesendet
           //werden müssen
          } 
     }  
}
</code></pre>
<p>... hoffe das hilft dir!</p>
<p>Gruß Sebastian</p>
]]></description><link>https://www.c-plusplus.net/forum/post/672954</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/672954</guid><dc:creator><![CDATA[PlayazOnly]]></dc:creator><pubDate>Tue, 14 Dec 2004 12:00:18 GMT</pubDate></item><item><title><![CDATA[Reply to TServerSocket und fehlende Bytes bei Übertragung on Tue, 14 Dec 2004 13:50:32 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/7429">@PlayazOnly</a></p>
<p>Die Schleifen lassen sich mit AnsiString::Pos() und AnsiString::SubStr() viel einfacher lösen bzw. sie können dann einfach entfallen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/673025</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/673025</guid><dc:creator><![CDATA[PuppetMaster2k]]></dc:creator><pubDate>Tue, 14 Dec 2004 13:50:32 GMT</pubDate></item><item><title><![CDATA[Reply to TServerSocket und fehlende Bytes bei Übertragung on Thu, 16 Dec 2004 07:25:59 GMT]]></title><description><![CDATA[<p>Hi,<br />
erstmal vielen Dank für die Antwort, werde ich gleich probieren...</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/674309</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/674309</guid><dc:creator><![CDATA[evilempire81]]></dc:creator><pubDate>Thu, 16 Dec 2004 07:25:59 GMT</pubDate></item></channel></rss>