<?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[TUdpSocket OnReceive]]></title><description><![CDATA[<p>Hi,</p>
<p>habe hier ein Server und Client Programm.<br />
Der Server soll dem Client z.B. ne &quot;1&quot; per UDP senden (SendBuf), damit der Client weis, wann er die Datenbank neu einlesen soll.<br />
Der Server schickt also nach jeder Änderung in der DB eine &quot;1&quot; an den Client.<br />
Jetzt habe ich das Problem, das bei dem Client das OnReceive Event nicht ausgeführt wird wenn Daten ankommen, sondern erst wenn Daten angekommen sind.<br />
Wenn ich ReceiveBuf jede Sekunde ausführe, hängt meine Form...<br />
Habt ihr eine Idee?</p>
<p>Infos:<br />
- Paradox DB<br />
- Borland Builder 6<br />
- WinXP Pro</p>
<p>Vielen Dank!<br />
MfG, TLL.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/142159/tudpsocket-onreceive</link><generator>RSS for Node</generator><lastBuildDate>Tue, 04 Aug 2026 00:32:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/142159.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 28 Mar 2006 10:32:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to TUdpSocket OnReceive on Tue, 28 Mar 2006 10:33:45 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>habe hier ein Server und Client Programm.<br />
Der Server soll dem Client z.B. ne &quot;1&quot; per UDP senden (SendBuf), damit der Client weis, wann er die Datenbank neu einlesen soll.<br />
Der Server schickt also nach jeder Änderung in der DB eine &quot;1&quot; an den Client.<br />
Jetzt habe ich das Problem, das bei dem Client das OnReceive Event nicht ausgeführt wird wenn Daten ankommen, sondern erst wenn Daten angekommen sind.<br />
Wenn ich ReceiveBuf jede Sekunde ausführe, hängt meine Form...<br />
Habt ihr eine Idee?</p>
<p>Infos:<br />
- Paradox DB<br />
- Borland Builder 6<br />
- WinXP Pro</p>
<p>Vielen Dank!<br />
MfG, TLL.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1025394</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1025394</guid><dc:creator><![CDATA[ThA-LaN-LaW]]></dc:creator><pubDate>Tue, 28 Mar 2006 10:33:45 GMT</pubDate></item><item><title><![CDATA[Reply to TUdpSocket OnReceive on Tue, 28 Mar 2006 13:56:47 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/profile.php?mode=viewprofile&amp;u=10455" rel="nofollow">evilissimo</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=15" rel="nofollow">C++</a> in das Forum <a href="http://www.c-plusplus.net/forum/viewforum.php?f=2" rel="nofollow">VCL/CLX (Borland C++ Builder)</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39405" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1025575</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1025575</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Tue, 28 Mar 2006 13:56:47 GMT</pubDate></item><item><title><![CDATA[Reply to TUdpSocket OnReceive on Tue, 28 Mar 2006 14:36:47 GMT]]></title><description><![CDATA[<p>ThA-LaN-LaW schrieb:</p>
<blockquote>
<p>...<br />
Jetzt habe ich das Problem, das bei dem Client das OnReceive Event nicht ausgeführt wird wenn Daten ankommen, sondern erst wenn Daten angekommen sind.<br />
...</p>
</blockquote>
<p>Also wird es doch ausgelöst !?</p>
<pre><code class="language-cpp">char Buff[1024];
int j;
UDP1-&gt;ReadBuffer(Buff,1024,j);
Buff[j] = 0;

//oder bei den Indys:

char Buff[1024];
UDP1-&gt;ReadBuffer(Buff,1024);
</code></pre>
<p>Ich empfehle dir ein NMUDP Socket zu verwenden. Hatte mit den Indys auch nur Probs. Kein UDP Socket lief bei mir so zuverlässig wie das NMUDP. Verwende es bei dem &quot;Server&quot; und dem &quot;Client&quot;.</p>
<p><strong>Edit #3:</strong> Wenn du schon dauernd ReceiveBuff aufrufst würd ich dir nen IndyAntiFreez empfehlen und die ganze Geschichte in nen extra Thread auszulagern. So funktioniert das bei dem IndyTCPClient bestens bei mir. Die VCL ist nicht thread-safe. Synchronize is dein Freund</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1025599</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1025599</guid><dc:creator><![CDATA[Zero01]]></dc:creator><pubDate>Tue, 28 Mar 2006 14:36:47 GMT</pubDate></item><item><title><![CDATA[Reply to TUdpSocket OnReceive on Wed, 29 Mar 2006 05:24:21 GMT]]></title><description><![CDATA[<blockquote>
<p>Also wird es doch ausgelöst !?</p>
</blockquote>
<p>Muss ich passen, denn soweit habe ich erst gar nicht programmiert, denn ich will nicht, das die Form &quot;hängt&quot;. Denn ReceiveBuf wartet ja bis was kommt.<br />
Unter VB gibt es was ähnliches, doch dort es das Event OnArrival, das wird ausgelöst sobald was ankommt. Und blokiert somit nicht den Rest.</p>
<p>Ich versuche micht jetzt mal mit dem NMUDP.<br />
Gebe dann aber kurz Bescheid wie's aussieht <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>Ein Beispiel wie der Server (sender) Teil und der Client (empfänger) Teil mit NMUDP aussieht, hast du zufällig nicht parat? <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>Vielen Dank und Gruß,<br />
TLL</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1026044</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1026044</guid><dc:creator><![CDATA[ThA-LaN-LaW]]></dc:creator><pubDate>Wed, 29 Mar 2006 05:24:21 GMT</pubDate></item><item><title><![CDATA[Reply to TUdpSocket OnReceive on Wed, 29 Mar 2006 09:58:57 GMT]]></title><description><![CDATA[<p>Hi</p>
<p>so, fertig <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>Hat mit NMUDP prima funktioniert!</p>
<pre><code class="language-cpp">void __fastcall TFormClient::NMUDPEmpfDataReceived(TComponent *Sender,
      int NumberBytes, AnsiString FromIP, int Port)
{
  AnsiString C;
  int I;
  TMemoryStream *MyStream = new TMemoryStream();
  NMUDPEmpf-&gt;ReadStream(MyStream);
  C.SetLength(NumberBytes);
  MyStream-&gt;Read(&amp;C[1], NumberBytes);

  I = StrToInt(C);

  if ( I == 1 ) {
    TableFahrzeuge-&gt;Refresh();
    TableProtokoll-&gt;Refresh();
  }
</code></pre>
<p>Anfangs hatte ich vergessen den LocalPort zu setzen, dann kann es vorkommen das ne exception kommt oder einfach keine Daten ankommen...</p>
<p>Nochmals Danke und Grüße, TLL</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1026276</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1026276</guid><dc:creator><![CDATA[ThA-LaN-LaW]]></dc:creator><pubDate>Wed, 29 Mar 2006 09:58:57 GMT</pubDate></item><item><title><![CDATA[Reply to TUdpSocket OnReceive on Wed, 29 Mar 2006 11:38:24 GMT]]></title><description><![CDATA[<p>Prima ! btw: wie wäre es jetzt mit nem besseren Protokolldesign ?? <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="🤡"
    /><br />
Edit: Ups, du sendest und empfängst ein einzelnes zeichen via memorystream ??<br />
Schau dir mal nen Tutorial zu blocking und non-blocking Sockets an. ReceiveBuff liest vom Stack, egal ob was drin steht oder nicht.</p>
<p>Local port?? Der Briefträger steht vor 5 Briefkästen die nicht beschriftet sind. Wohin kommt der Brief ??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1026363</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1026363</guid><dc:creator><![CDATA[Zero01]]></dc:creator><pubDate>Wed, 29 Mar 2006 11:38:24 GMT</pubDate></item></channel></rss>