![]() |
UDP- Broadcast Nachricht versenden/Empfangen
Hallo,
ich bin komplett neu in der Netzwerk Programmierung. Ich hab schon seit ein paar Tagen versucht, mein Problem durch die Forensuche und google zu lösen, komme aber absolut nicht weiter. Keiner der Quelltexte die ich gefunden habe, hat mich nur einen Schritt weiter gebracht. :wall: Es geht darum, dass ich per UDP-Broadcast eine Nachricht von einem Client im Netzwerk senden möchte und die dann auf dem Server erstmal anzeigen zu lassen. (wenn das geklappt hat, soll der Server dann irgendwann mal seine IP an den Client zurück senden) Das Problem ist, dass ich nichtmal eine Nachricht per UDP-Broadcast versendet kriege. Ich holfe ihr könnt helfen. :cheers:
Delphi-Quellcode:
Compiliert wird ohne fehler.
procedure TForm1.Button2Click(Sender: TObject);
begin //erstmal server erstellen IDUDPServer1.Active:=true; IDUDPServer1.DefaultPort:=10025; end; procedure TForm1.Button1Click(Sender: TObject); begin //client erstellen und gleich Broadcast senden idudpclient1.Active:=true; idudpclient1.Port:=10025; idudpclient1.BroadcastEnabled:=true; idudpclient1.Broadcast('Hallo',10025); end; procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TBytes; ABinding: TIdSocketHandle); var rectext:string; begin RecText:=Copy(BytesToString(Adata), 0, length(Adata)); application.MessageBox(Pansichar(rectext),'Test Broadcast'); end; end. Starte ich das Programm nun auf 2 rechnern und erstelle auf einem den Server und auf dem anderen den Client (von wo auch der Broadcast gesendet wird), kommt bei dem Server aber nichts an. Wenn ich alle beide Programme wieder schliesse, kommt dann ausserdem jedes mal eine Fehlermeldung "#socket error 10004" (IdStackBSDBase) im delphi compiler (fehler kommt auch, wenn ich von der .exe gestartet hatte). Wenn ich die das Programm starte und nur einen Server erstelle und vom Client aber nichts gesendet habe, kommt keine Fehlermeldung. :cry: |
Re: UDP- Broadcast Nachricht versenden/Empfangen
ich könnte mir zwei Dinge vorstellen, einmal hatte ich schon das Problem dass die Indys Änderungen nur übernehmen wenn Sie nicht Active sind. Also setzte den Port einmal und schalte erst danach auf Active.
Das andere wäre noch dass die Firewall das verhindernt, um das zu verhindern solltest Du die exe in den erlaubten Programmen eintragen. |
Re: UDP- Broadcast Nachricht versenden/Empfangen
Also die Portzuweisungen und die Activierung des Servers und des Clients muss auf jeden Fall mal ins OnCreate. Sonst werden die Komponenten bei jedem Buttonklickt neu gestartet.
Florian |
Re: UDP- Broadcast Nachricht versenden/Empfangen
OK, ich habs mal getauscht und aufeinmal ging es! Naja, fast. :roll: Ich arbeite hier mit 2 rechnern. Der eine hat WinXP und der andere noch Win 98. Erstelle ich den Server auf dem XP rechner und sende den Broadcast von dem 98 rechner, erscheint tatsächlich eine messagebox auf dem XP (server) rechner. Ist der 98er der Server, kommt aber keine messagebox. :gruebel: Das selbe, wenn ich auf einem Rechner Server erstelle und vom gleichen Rechner auch den Broadcast sende. Bei dem XP erscheint dann auf dem selben rechner gleich die MBox und bei dem 98´er nicht. Firewalls sind auf beiden aus.
Funktioniert das bei Win 98 nicht? :pale: Danke erstmal für die Hilfe. |
Re: UDP- Broadcast Nachricht versenden/Empfangen
Als Hilfe würde ich dir noch Ethereal bzw. jetzt Wireshark empfehlen. Damit kannst Du mitschneiden was auf dem Netzwerk passiert. Damit könntest Du schnell heraus finden ob der eine das Packet abschickt und der andere es empfängt.
|
Re: UDP- Broadcast Nachricht versenden/Empfangen
Ja kann ich mal Probieren!
Aber bleibt trotzdem noch das Problem mit dem: "Socket error 10004". Vlt. kann mir jemand sagen, wovon der kommt und evtl. einen Tipp geben, wie ich das Problem löse. :thumb: |
Re: UDP- Broadcast Nachricht versenden/Empfangen
Zitat:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz