AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Local Chat
Thema durchsuchen
Ansicht
Themen-Optionen

Local Chat

Ein Thema von Tim.exe · begonnen am 21. Mai 2003 · letzter Beitrag vom 9. Jun 2003
 
Benutzerbild von S - tefano
S - tefano

Registriert seit: 16. Dez 2002
Ort: Dülmen
477 Beiträge
 
Delphi 2009 Professional
 
#3
  Alt 30. Mai 2003, 17:13
Hi,

ach Mist, ich glaub zwar dass ich meinem eigenen Chat der gerade inner Werft steht zwar ein Beinchen stell, aber ich denke, dass keiner von uns beiden in irgendeiner Weise messbaren Profit aus der Sache schlagen wird.
Hab mir dein Programm übrigens noch nicht angesehen (sorry), mach ich im Laufe des Abends wenns kühler wird und ich meinen Rechner länger laufen lass (sons wird die Bude zu heiß).
Zu dem Nachrichten an alle Rechner gleichzeitig schicken:
UDP- Broadcasting. Das preise ich jetz glaube ich zum dritten Mal an.
Du holst dir die Indys und guckst dir da die Tutorials zu UDP an.
Ein Broadcast ist quasi wie du schon sagtest eine Nachricht an das gesamte Netzwerk (an einem bestimmten Port).
Das Verschicken eines Broadcasts ist recht einfach:

UDPClient1.Broadcast('Nachrichtentext', port); Wie gesagt, ich (für meinen Teil) bevorzuge dafür die Indys. Is schön einfach und komfortabel.
Wenn ein Broadcast ankommt, dann kriegst du das über das Ergeinis "OnUDPRead" vom UDPServer mit:

Delphi-Quellcode:
procedure TForm1.UDPServer1UDPRead(Sender: TObject; AData: TStream; ABinding: TIdSocketHandle);
var
  sstream: TStringStream;
  s: string;
begin
  sstream:= TStringStream.Create(''); //den String-Stream ohne Inhalt erstellen
  try
    sstream.CopyFrom(AData, AData.Size); //den Stream aus AData in unseren Stream schreiben
    s:= sstream.DataString; //Inhalt des Streams in einen normalen String schreiben
  finally
    sstream.free; //den Stream aus dem Speicher löschen
  end;
end;
Is eigentlich nichts weiter als eine Art Auszug aus den Tutorials. Da übers Netzwerk in diesem Fall nur gestreamt wird, müssen wir erstmal den String der uns geschickt wurde aus seinem Stream rausholen um damit leichter weiterarbeiten zu können.
ABinding ist beim Broadcasting (jedenfalls beim schlichten Empfangen) nicht so wichtig. Da stehen so Sachen wie Absender- IP und so drin. Das is ganz nützlich wenn du etwas, was dir per UDP geschickt wurde beantworten willst. Per UDP kannst du natürlich auch ganz normal Nachrichten verschicken (also keinen Broadcast), dafür bietet sich allerdings TCP/IP besser an. Wenn du jetzt aber wissen willst, wer dir den Broadcast geschickt hast und du diesen evtl. gezielt an den Absender beantworten willst, musst du ABinding auch noch auslesen.
Da verweise ich mal auf die Tutorials der Indys.

So, dann werd ich mir mal dein Prog ziehen nachdem ich so viel Bullsh.. gelabert hab.

Bis dann,

S - tefano
"Sir, we are surrounded!" - "Excellent, we can attack in every direction!"
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13: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