AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Mehrere IP-Adressen auf einem Rechner -für Simulationszwecke
Thema durchsuchen
Ansicht
Themen-Optionen

Mehrere IP-Adressen auf einem Rechner -für Simulationszwecke

Ein Thema von Whookie · begonnen am 27. Jun 2007 · letzter Beitrag vom 17. Jul 2007
Antwort Antwort
Seite 1 von 2  1 2      
Whookie

Registriert seit: 3. Mai 2006
Ort: Graz
445 Beiträge
 
Delphi 10.3 Rio
 
#1

Mehrere IP-Adressen auf einem Rechner -für Simulationszwecke

  Alt 27. Jun 2007, 08:33
Ich bin gerade dabei, eine Simulation zu planen, die in der Lage sein sollte eine beliebige Anzahl von "externen" Geräten zu simulieren. Im Realfall hat jedes Gerät natürlich eine eigene IP-Adresse und lauscht auf einem fix reservierten Port. Um die Geräteentwicklung von der Entwicklung der PC-Applikation(en) zu trennen (in der Regel sind auch nie genügend physikalische Geräte vorhanden) soll es ein Programm geben, das auf einem PC läuft und eine beliebige Anzahl von pyhsikalischen Geräten simulieren kann (natürlich jedes mit eigener IP, alle am selben Port ...).
Auf den Geräten wird ausschließlich UDP verwendet und die Simulation sollte in Delphi mit den Indy10 Komponenten geschrieben werden.

Nun habe ich aber das Problem, das ich keine Ahnung habe, wie ich auf einem Rechner eine beliebige Anzahl von IP-Adressen simulieren kann?

TIA
Whookie
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Mehrere IP-Adressen auf einem Rechner -für Simulationszw

  Alt 27. Jun 2007, 08:38
beim tcp/ip-protokoll in den Eigenschaften einer Verbindung kannst du mehrere IP-Adressen angeben.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Mehrere IP-Adressen auf einem Rechner -für Simulationszw

  Alt 27. Jun 2007, 08:57
Unter WinXP und vielleicht auch Win2000 kannst Du bei den Netzwerkeinstellungen mehrere IP-Adressen eintragen. Natürlich geht das nicht unendlich.

Evtl. solltest Du Dir auch mal überlegen, mit VM's zu arbeiten. Dann hast Du mehrere PC's auf einem PC.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Whookie

Registriert seit: 3. Mai 2006
Ort: Graz
445 Beiträge
 
Delphi 10.3 Rio
 
#4

Re: Mehrere IP-Adressen auf einem Rechner -für Simulationszw

  Alt 27. Jun 2007, 21:40
Das ganze sollte ziemlich einfach in einem Simulationsprogramm laufen, dort sollten 20 bis 50 Geräte (== IP-Adressen) simuliert werden können. Das ganz könnte dann auf einem eigenen "Simulationsrechner" oder besser noch auf dem Entwicklungsrechner selber laufen, auf dem die Applikation entwickelt wird.
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#5

Re: Mehrere IP-Adressen auf einem Rechner -für Simulationszw

  Alt 27. Jun 2007, 22:06
Wenn es dir nur um IP Adressen geht hast du doch sicher genug. Man denke nur an 127.0.0.1. Damals zu beginn von IP haben die Erfinder gleich das komplette A Netz 127 als Lokal gesetzt. Also hat dein Rechner auch die Adresse 127.8.9.10. Ich denk mal so 16 Mio. Adressen sollten dir reichen.

mfg, Björn
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
Whookie

Registriert seit: 3. Mai 2006
Ort: Graz
445 Beiträge
 
Delphi 10.3 Rio
 
#6

Re: Mehrere IP-Adressen auf einem Rechner -für Simulationszw

  Alt 8. Jul 2007, 22:56
Ja, ich denke das sollte für meine Zwecke genügen

Ich habe mich auch schon über einige Experimente her gemacht und bin bereits auf die nächsten Probleme gestoßen...

Ich habe ein Clientprogramm mit einer IdUDPClient-Komponente und einer ComboBox mit folgenden IP-Adressen: 127.8.0.4 und 127.8.0.5. Dazu gibt es 2 Buttons, einer davon verwendet die beiden IP's aus der ComboBox:

Delphi-Quellcode:
procedure TSDIAppForm.SendBtnClick(Sender: TObject);
begin
  IdUDPClient1.Active := TRUE;
  IdUDPClient1.Send(SendIPCB.Items[SendIPCB.ItemIndex], 3333, Format('Sending to %s <Hallo Welt!>', [SendIPCB.Items[SendIPCB.ItemIndex]]));
end;
Dazu gibt es auch noch einen Broadcast-Button:

Delphi-Quellcode:
procedure TSDIAppForm.BroadCastBtnClick(Sender: TObject);
begin
  IdUDPClient1.Active := TRUE;
  IdUDPClient1.BroadcastEnabled := TRUE;
  IdUDPClient1.Broadcast('Broadcasting to all <Hallo Welt>!', 3333);
end;
Bewusst momentan nicht drin ist das warten auf eine Antwort....

Dann gibt es eine Serverapplikation die momentan 2 IdUDPServer-Komponenten enthält. Beide wurden wie folgt initialisiert (im Designer):
Delphi-Quellcode:
Active := TRUE;
BroadcastEnabled := TRUE;
DefaultPort:=3333;

Bindings := 127.8.0.4:3333 (IdUDPServer1)
Bindings := 127.8.0.5:3333 (IdUDPServer2)
Der Rest bleibt auf Defaultwerten. Das OnUDPRead-Ereignis beider Komponenten ist mit folgender Methode verbunden:

Delphi-Quellcode:
procedure TSDIAppForm.UDPServer_Read(Sender: TObject; AData: TBytes; ABinding: TIdSocketHandle);
Var
  s: TIdBytes;
begin
  dbPrint('OnRead: %s("%s")', [TComponent(Sender).Name, BytesToString(AData)]);
  dbPrint(' IP: %s (Port: %d)', [ABinding.IP, ABinding.Port]);
  dbPrint(' PeerIP: %s (PeerPort: %d)', [ABinding.PeerIP, ABinding.PeerPort]);
// SetLength(s, 3);
// AppendString(s, '+OK', -1);
// ABinding.SendTo(ABinding.PeerIP, ABinding.PeerPort, s);
end;
dbPrint gibt dabei Text in ein Memofeld aus.

1. Problem
Verwende ich die Send-Funktion dann wird das UDPServer_Read-Ereignis korrekt ausgelöst. Drücke ich den Broadcast-Button, wird jedoch kein Ereignis ausgelöst.

2. Problem
Nehme ich die Kommentare im UDPServer_Read weg (sende also eine Antwort), bekomme ich die Fehlermeldung:
Socket Error # 10065 - No route to host. Natürlich bekomme ich auch im IdUDPClient ein Timeout, wenn ich dort mit
IdUDPClient1.ReceiveString; eine Antwort zu empfangen versuche ...

3. frage ich mich, ob das überhaupt klappen kann, wenn ein Broadcast antworten von mehreren Quellen bringt, ich aber nur auf dieses eine ReceiveString warte ...?

Vielleicht gibts ja jemand der da einwenig Licht in die ganze Sache bringen kann ...

TIA
Whookie
  Mit Zitat antworten Zitat
WS1976
(Gast)

n/a Beiträge
 
#7

Re: Mehrere IP-Adressen auf einem Rechner -für Simulationszw

  Alt 9. Jul 2007, 09:42
Hallo,

WinXP: genau 2 IP Adressen kannst du da eingeben, eine originäre und eine alternative.
Alles andere ist fundiertes Halbwissen!

Grüsse
Rainer
  Mit Zitat antworten Zitat
Benutzerbild von Steve
Steve

Registriert seit: 2. Mär 2004
Ort: Würzburg
730 Beiträge
 
Delphi 2006 Personal
 
#8

Re: Mehrere IP-Adressen auf einem Rechner -für Simulationszw

  Alt 9. Jul 2007, 10:37
<Eigenschaften der Netzwerkverbindung> - Eigenschaften von Internetprotokoll (TCP/IP) - <DHCP deaktivieren> - Erweitert - IP-Adressen - Hinzufügen
Auszug aus der Hilfe dieses Dialogs:
Listet zusätzliche IP-Adressen und Subnetzmasken auf, die dieser Netzwerkverbindung zugewiesen werden können. Sie können beliebig viele IP-Adressen konfigurieren. [...]


Hm. Klingt fast wie gewollt.

Gruß
Stephan
Stephan B.
Wer andern eine Grube gräbt ist Bauarbeiter!
Wer im Glashaus sitzt, sollte sich lieber im Dunkeln ausziehen!
Außerdem dieser Satz kein Verb...
  Mit Zitat antworten Zitat
Whookie

Registriert seit: 3. Mai 2006
Ort: Graz
445 Beiträge
 
Delphi 10.3 Rio
 
#9

Re: Mehrere IP-Adressen auf einem Rechner -für Simulationszw

  Alt 9. Jul 2007, 17:16
damit hab ich leider kein Glück ... XP meint bei der Eingabe einer 127.er IP:

IP-Adressen, die mit 127 beginnen, sind unzulässig, weil sie für Loopbackadressen reserviert sind. Geben sie einen anderen Wert zwischen 1 und 223 ein.

Mal abgesehen davon, dass das ein ziemlicher Konfigurationsaufwand wäre ... bei jedem Rechner 50 IP-Adressen einzugeben damit die Simulation läuft ...

Ausserdem läuft es ja mit den IdUDPServer(n), wenn man über Bindings eine entsprechende Zuweisung macht (zumindestens der Empfang) ... vielleicht krieg ich da ja doch noch irgendwie die Kurve?
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Mehrere IP-Adressen auf einem Rechner -für Simulationszw

  Alt 9. Jul 2007, 18:01
Hallo, das ist ne entweder-oder-sache

1. du bindest deine adapter an loopback-adressen, z.B. 127.0.1.32

2. du bindest deinen Nertzerkadapter an mehrere bestimmte Adressen, z.B. 10.0.0.1,10.0.0.2,10.0.0.3 usw. du kannst deine netzwerkadapter dann auch einzeln an diese adressen binden.

Soweit hab ichs verstanden.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 17:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz