Entwickler-Ecke
Internet / Netzwerk - Wie initialisiere ich TIdUdpServer korrekt?
Stephan.Woebbeking - Di 01.06.10 14:55
Titel: Wie initialisiere ich TIdUdpServer korrekt?
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:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| var buf: array[0..1] of 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 - 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
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!