Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Netzwerk mit Delphi (https://www.delphipraxis.net/1124-netzwerk-mit-delphi.html)

Christian Seehase 25. Okt 2002 20:51

Moin Hansa,

Zitat:

Zitat von Hansa
Die 192.168....er IP-Adressen dienen dazu, diese MANUELL einzutragen !!

Wieso das?
Das zeigt nur ein Class C Netz mit privaten Adressen an.
Ob ich die nun per DHCP verteile oder statisch spielt dabei doch keine Rolle.

Jan 26. Okt 2002 01:52

Hi Ihr alle!
Also ich hab mal das Tut ausprobiert, welches hier in diesem Thread gelinkt wurde, und das hat auch alles einwandfrei geklappt, auch über LAN, nicht nur über localhost.
Jetzt hab ich also so ne kleine Anwendung geschrieben und hab eine simple Frage:
1. ich möchte nicht, dass die ip fest im Programm verankert ist, weil ich dann jedesmal, wenn sich die ip vom server ändert auch die ip umprogrammieren muss => umständlich. Jetzt habe ich natürlich schon statt einem fest einprogrammierten Wert eine text-input-zeile gemacht, und das klappt auch wunderbar, ABER! ich möchte, dass das Programm bei einer falsch eingegebenen IP, oder einem fehlgeschlagenen Connect-Versuch eine showmessage ausgibt, anstatt zu siffen, so dass man es erneut Probieren kann. Ich hab das dann mal mit try/except versucht, das Problem ist nur, dass das nicht funkioniert, weil die Anweisungen alle durchgeführt werden, während versucht wird die Verbindung aufzubauen, welches bedeutet, dass die Verbindung keinen Einfluss auf try/except hat.

Jan 26. Okt 2002 02:01

Weiteres Problem:
Für die Kommunikation zwischen den Programmen im Dialog, nicht nur im Monolog ist es ja auch von Nöten, dass ich vom server aus Daten an den Client schicke, was ja einfach wäre, wenn ich mit festen IPs arbeiten würde. Was ich mir vorstelle ist ein Tool, was gleichzeitig server und client ist und seine eigene ip beim connecten mitschickt. D.h. dass auf dem anderen PC auch das Tool läuft, ich schicke an dieses Tool meine eigene ip und baue eine Verbindung auf, woraufhin das Tool auf dem anderen PC eine Verbindung zu mir aufbaut.
So, 1.: Geht das?
2.: Wie geht es?
3.: Ist das sinnvoll, oder geht es besser?
4.: Wie lese ich meine IP aus?
Gruss
Jan

Luckie 26. Okt 2002 05:43

Hier beschreibt Mathias Simmack, wie man das IP-Adress-Eingebefeld benutz:
http://www.auq.de/viewtopic.php?t=25...ght=ip+control
Dann brauchst du dich schon mal nicht um die Kontrolle der Eingabe zu kümmern.

Salomon 26. Okt 2002 08:53

zu Punkt 4. Deine momentane Internet IP liest du so aus:

Code:
function GetLocalIPs: String;
type PPInAddr= ^PInAddr;
var wsaData : TWSAData;
HostInfo : PHostEnt;
HostName : Array[0..255] of Char;
Addr    : PPInAddr;

begin
if WSAStartup($0102, wsaData) <> 0 then Exit;
try if GetHostName(HostName, SizeOf(HostName)) <> 0 then
begin
result:='';
Exit;
end;
HostInfo:= GetHostByName(HostName);
if HostInfo=nil then
begin
result:='';
Exit;
end;
Addr:=Pointer(HostInfo^.h_addr_list);
if (Addr=nil) or (Addr^=nil) then
begin
result:='';
Exit;
end;
if not (copy(strpas(inet_ntoa(addr^^)),1,7) = '192.168') then
begin
  result:=StrPas(inet_ntoa(Addr^^));
  inc(Addr);
end
 else
   begin
   inc(addr);
   while Addr^ <> nil do
     begin
       result:=StrPas(inet_ntoa(Addr^^));
      inc(Addr);
     end;
   end;
finally WSACleanup;
end;
end;
Mfg Salomon

Jan 26. Okt 2002 13:27

Guten Tag,
@luckie: Das ist ja schön und gut, aber ist eigentlich nicht was ich suche, denn ob die ip Addresse von der Grammattik her richtig eingegeben ist garantiert ja noch lange nicht, dass es unter der ip auch einen server zu finden gibt, daher wollte ich das einfach so machen: der client probiert einfach aus, was immer er eingegeben bekommt, egal ob das nun eine ip Addresse ist, oder nicht, und checkt, ob er unter dem string zu einem server conn. kann, wenn nicht so gibt er eine "Connection failed" message aus.

@Salomon thx, ist ja ne Menge aufwendiger als ich gedacht hätte, gleich mal ausprobieren.

thx
Jan

doc 26. Okt 2002 14:04

@ Jan
Was für ne IP hast du denn in deinem Lokalen Netzwerk (um auf Christian´s Posting zurücktzukommen)?

MfG doc

Luckie 26. Okt 2002 14:17

Zitat:

Zitat von Jan
@luckie: Das ist ja schön und gut, aber ist eigentlich nicht was ich suche, denn ob die ip Addresse von der Grammattik her richtig eingegeben ist garantiert ja noch lange nicht, dass es unter der ip auch einen server zu finden gibt, daher wollte ich das einfach so machen: der client probiert einfach aus, was immer er eingegeben bekommt, egal ob das nun eine ip Addresse ist, oder nicht, und checkt, ob er unter dem string zu einem server conn. kann, wenn nicht so gibt er eine "Connection failed" message aus.

Aber es reduziert doch schon mal die Fehlerquelle oder?

Dann sende doch einen Ping an die Adresse. Wenn was zurückkommt, dann kanst du weitermachen im Text. Ansonsten brichst du ab.

Christian Seehase 26. Okt 2002 16:11

Moin Zusammen,

da man ja als Host auch den Rechnernamen angeben kann (entsprechende Namensauflösung über DNS Server oder LMHOST/HOSTS vorausgesetzt) könnte man auch an zwei Eingabefelder denken. Eines nur für IP Adresse, eines für Rechnernamen.

Jan 26. Okt 2002 18:20

Hi alle,
also das mit der Fehlerquelle reduzieren is ja schön und gut, aber dadurch kann es ja immernoch passieren, dass das Programm sifft, also müsste ich trotzdem den gegeneben Fall programmieren, dass der server nicht vorhanden ist.

Zitat:

@ Jan
Was für ne IP hast du denn in deinem Lokalen Netzwerk (um auf Christian´s Posting zurücktzukommen)?
192.168.99.1/58 das sind die beiden IPs

Zitat:

Dann sende doch einen Ping an die Adresse. Wenn was zurückkommt, dann kanst du weitermachen im Text. Ansonsten brichst du ab.
Nein, das wäre nur eine weitere Begrenzung der Fehlerquellen, angenommen, der server existiert und hat auch die korrekte ip, aber das Servertool ist nicht aktiviert, so werde ich trotz eines erfolgreichen pings einen error bekommen, wenn ich versuche die Verbindung über port 23 aufzubauen. deshalb brauche ich da immernoch eine Lösung :]

@ Salomon: Welche units muss ich einbinden, um bei deiner ip-Funktion nicht 1000 "Bezeichner Unbekannt"-Fehler zu bekommen?
thx für alle Antworten
bleibt mir gewogen :]
Jan


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:37 Uhr.
Seite 3 von 4     123 4      

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