Autor Beitrag
Stephan.Woebbeking
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 97



BeitragVerfasst: Di 01.06.10 14:55 
Hallo,

in Delphi 2007 / Indy 10.1.1 baue ich ein Projekt, welches auf Basis von UDP Paketen kommunizieren muss / soll. Es müssen Pakete verschickt und natürlich auch empfangen werden. Das Ganze bekomme ich auch hin, allerdings habe ich bei der Initialisierung noch eine Lücke. Ich muss immer erst etwas über den Socket versenden, bevor ich Daten empfangen kann; ich denke da muss es noch einen anderen Weg geben. Folgendermaßen bin ich derzeit vorgegangen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
var
  buf: array[0..1of Byte;
begin
  SckWSM.DefaultPort := WSM_PC_PORT;
  SckWSM.Active := True;
  SckWSM.SendBuffer( receiver.GetIPAddress, 0, RawToBytes( buf, sizeOf( buf ) ) );
end;
...
procedure TFormStart.SckWSMUDPRead(Sender: TObject; AData: TBytes;
  ABinding: TIdSocketHandle);
begin
  receiver.UDPRead( AData );
end;


Wobei SckWSM: TIdUdpServer ist. Das Paket, welches ich hier versende ist vom Inhalt völlig irrelevant, wenn ich es aber nicht sende, kann ich nichts empfangen, soll heissen die Methode SckWSMUDPRead wird nie gerufen, obwohl ich im Wireshark sehe, dass Pakete ankommen.

Wie ist die korrekte Initialisierung, ich denke es muss ohne dies Nirvana-Senden gehen. Wäre evt. was für die Library? Hab aber schon alles gescannt, bin jedoch nicht fündig geworden...

Danke,
Stephan
Stephan.Woebbeking Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 97



BeitragVerfasst: Do 01.07.10 13:45 
Hmmm, weiß da echt keiner was zu?

Hab da ein kleines Update... Macht das Problem aber eher größer als kleiner. Seit heute morgen - für mich völlig ohne erkennbaren Grund - wollte meine Applikation mit einem Male keine Daten mehr empfangen. M.E. hatte ich nicht mal was geändert, wie gesagt, ich wüsste nicht, was ich umgestellt habe. Irgendwann habe ich herausgefunden, dass das empfangen über den Server wieder funktioniert, wenn ich im Designer den DefaultPort einstelle. Wie auch oben im Quelltext zu sehen, hatte ich den immer über die Sourcen zur Laufzeit eingestellt, aber das geht jetzt nicht mehr...?

Irgendeine Idee für mich???

Danke,
Stephan