AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi UDP Indy10 - Daten austauschen
Thema durchsuchen
Ansicht
Themen-Optionen

UDP Indy10 - Daten austauschen

Ein Thema von OlafSt · begonnen am 13. Nov 2009 · letzter Beitrag vom 16. Nov 2009
Antwort Antwort
OlafSt

Registriert seit: 2. Mär 2007
Ort: Hamburg
284 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

UDP Indy10 - Daten austauschen

  Alt 13. Nov 2009, 17:13
Hallo Leute,

ich seh mal wieder den Wald nicht...

Simples Problem: Ich will mit einer Anwendung kommunizieren via UDP. Ich benutze hier Delphi2009 und Indy10, ergo eine TIdUDPClient-Kompo.

Daten senden an die andere Anwendung funktioniert wunderbar. Doch diese Anwendung schickt mir eine Antwort zurück - die ich nie erhalte.
Da es keine Events im TIdUDPClient gibt, die mir signalisieren, das ich was bekommen habe, polle ich per Timer-Event. Aber ich erhalte nie Daten. Was mache ich falsch ?

Wenn Verweise auf andere UDP-Komponenten als Indy10, dann nur welche, die auch mit D2009 laufen

Die entscheidenden Codestellen:

Delphi-Quellcode:
//Schalte unsere Lampe auf grün, wenn Verbindung ok
procedure TTUT_Main.IdUDPClient1Connected(Sender: TObject);
begin
     IPStatus.FillColor:=clLime;
end;

//Lampe auf rot, wenn Verbindung weg
procedure TTUT_Main.IdUDPClient1Disconnected(Sender: TObject);
begin
     IPStatus.FillColor:=clRed;
end;

//Anzeige der Stati, die Indy uns mitteilt (Kommt eh nur Connect, Disconnect, Resolve etcpp)
procedure TTUT_Main.IdUDPClient1Status(ASender: TObject; const AStatus: TIdStatus; const AStatusText: string);
begin
     RzMemo1.Lines.Add('UDPClient: '+AStatusText);
end;

//Polling des UDP. Der Timer läuft alle 100ms hier durch - es kommt nur nie was an :-(
procedure TTUT_Main.IdUDPServer1UDPRead(AThread: TIdUDPListenerThread; AData: TBytes; ABinding: TIdSocketHandle);
var
   s: string;
   i: integer;
begin
     s:='';
     for i := 0 to Length(AData) - 1 do
         s:=s+chr(AData[i]);
     RzMemo1.Lines.Add('Received: '+s);
end;
x'posted @ DF
  Mit Zitat antworten Zitat
OlafSt

Registriert seit: 2. Mär 2007
Ort: Hamburg
284 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

Re: UDP Indy10 - Daten austauschen

  Alt 16. Nov 2009, 09:09
Gerade gemerkt: Ignoriert bitte "IdUDPServer1UDPRead" - das ist ein Trümmer von einem Experiment.

Der Timer-Event sieht so aus:

Delphi-Quellcode:
procedure TTUT_Main.Timer1Timer(Sender: TObject);
var
   s: string;
begin
     if not IDUDPClient1.Connected then exit;

     s:=IdUDPClient1.ReceiveString(10);
     if s='then exit;
     RzMemo1.Lines.Add('Received: '+s);

end;
  Mit Zitat antworten Zitat
Benutzerbild von Nersgatt
Nersgatt

Registriert seit: 12. Sep 2008
Ort: Emlichheim
693 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

Re: UDP Indy10 - Daten austauschen

  Alt 16. Nov 2009, 09:30
Crossposts bitte markieren
http://www.delphi-forum.de/viewtopic...=584468#584468
Jens
  Mit Zitat antworten Zitat
OlafSt

Registriert seit: 2. Mär 2007
Ort: Hamburg
284 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

Re: UDP Indy10 - Daten austauschen

  Alt 16. Nov 2009, 11:11
Zitat von OlafSt:
x'posted @ DF
Hab ich. Nur keinen Link draus gemacht. Verzeihung
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz