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-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29:
| procedure TTUT_Main.IdUDPClient1Connected(Sender: TObject); begin IPStatus.FillColor:=clLime; end;
procedure TTUT_Main.IdUDPClient1Disconnected(Sender: TObject); begin IPStatus.FillColor:=clRed; end;
procedure TTUT_Main.IdUDPClient1Status(ASender: TObject; const AStatus: TIdStatus; const AStatusText: string); begin RzMemo1.Lines.Add('UDPClient: '+AStatusText); end;
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; |
Lies, was da steht. Denk dann drüber nach. Dann erst fragen.