Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi broadcast... (https://www.delphipraxis.net/72792-broadcast.html)

The Madcat 6. Jul 2006 23:26


broadcast...
 
obwohl ich einige Threads zum thema broadcast gelesen hab konnte ich keine antwort auf meine frage finden ... deswegen folgendes:

ich bastel gerade an einen prog das unter anderem chat über udp beinhalten soll und bis jetzt hat auch alles geklappt, bis auf broadcast ...

vereinfacht lässt sich sagen:

auf der serverseite gibt es eine IdUDPServer-Komponente, die den Defaultort 11111 hat und in deren chatUDPRead-Event steht:

Delphi-Quellcode:
procedure TForm1.chatUDPRead(Sender: TObject; AData: TStream;
  ABinding: TIdSocketHandle);
var
  daten : TStringStream;
begin
  daten := TStringStream.Create('');
  try
    daten.CopyFrom(AData, AData.Size);
    chat.Broadcast(daten.DataString,11110);
  finally
    memo1.Lines.Add(daten.DataString);
    daten.Free
  end;
end;
auf der clientseite gibt es eine IdUDPClient-Komponente, die Port 11110 hat und im OnClick-Event des Senden-Buttons steht:

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  temp : string;
begin
  if sActive = True then
  begin
    temp := chat.LocalName + ': ' + Edit1.Text;
    try
      chat.Send(Combobox1.Text, 11111, temp);
      temp := '';
    finally
      temp := chat.ReceiveString(2000);
    end;

    if temp <> '' then
      memo1.Lines.Add(temp)
    else
      memo1.Lines.Add(chat.LocalName + ': Fehler beim Senden');
  end
  else
    ShowMessage('Keine Verbindung');
end;
also es sollte passieren, dass der client über port 11111 die nachricht an den server schickt und der die über port 11110 an alle clients sendet, die diese dann wiederum im memo anzeigen. Entweder hab ich was grundlegend falsch verstanden, oder WAS WEIß ICH ...

zur Entwirrung, ja die Server- und die Client-Komponenten heißen chat^^

arbu man 6. Jul 2006 23:33

Re: broadcast...
 
Schau dir doch mal die UDPSockUtil Komponente aus dem DF an, die ist echt kasse da brauchst du keinen server. Du sendest die nachrich einfach mit broadcast und jeder der im netzwerk an den port lauscht kann sie emfangen ! Die Komponente ist wirklich einen Blick Wert !

The Madcat 11. Jul 2006 19:30

Re: broadcast...
 
habe die komponente benutzt und alles funktioniert wunderbar^^

xZise 26. Nov 2007 17:08

Re: broadcast...
 
Da muss ich sagen, ist es bei mir leider nicht so :(
Alles funzt soweit, jedenfalls auf XP,
nur Broadcast nicht:
Delphi-Quellcode:
procedure Tfrm...
var
  msg : Byte;
begin
  msg := 0; // Ping

  // Weder so:
  udpSocket.RemoteHost := '255.255.255.255';
  udpSocket.SendBuf(msg, 1);

  // Noch so:
  udpSocket.BroadcastBuf(msg, 1);
end;
MfG
xZise

sirius 26. Nov 2007 17:13

Re: broadcast...
 
Darf dein Socket auch Broadcast-Messages schicken?
Gibt es Fehlermeldungen?

xZise 26. Nov 2007 17:31

Re: broadcast...
 
Zitat:

Zitat von sirius
Darf dein Socket auch Broadcast-Messages schicken?

D.h.?
Zitat:

Zitat von sirius
Gibt es Fehlermeldungen?

Also es werden keine angezeigt.

sirius 26. Nov 2007 17:52

Re: broadcast...
 
Arbeitest du mit TUDPSocket?
Dann darfst du nicht sendbuf sondern nur SendTo verwenden. Und das Broadcasten musst du anscheinend mit setsockopt und dem Handle des Sockets einstellen.

xZise 27. Nov 2007 08:26

Re: broadcast...
 
Zitat:

Zitat von sirius
Arbeitest du mit TUDPSocket?

Nein ;)
Delphi-Quellcode:
udpSocket : TUdpSockUtil;

Zitat:

Zitat von arbu man
Schau dir doch mal die UDPSockUtil Komponente aus dem DF an, [...]


sirius 27. Nov 2007 08:35

Re: broadcast...
 
Da hatte ich bereits drauf geklickt, aber die Komponente wahrscheinlich im Anhang. Und extra dafür einloggen will ich mich jetzt nicht.

xZise 1. Dez 2007 21:51

Re: broadcast...
 
Hat sich erledigt ;) Beim Broadcast wird nicht an Localhost versendet ... Aufjedenfall funktionierts jetzt!


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:48 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