AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Netzwerk mit Delphi
Thema durchsuchen
Ansicht
Themen-Optionen

Netzwerk mit Delphi

Ein Thema von doc · begonnen am 21. Okt 2002 · letzter Beitrag vom 26. Okt 2002
Antwort Antwort
Seite 3 von 4     123 4      
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#21
  Alt 25. Okt 2002, 21:51
Moin Hansa,

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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#22
  Alt 26. Okt 2002, 02: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
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#23
  Alt 26. Okt 2002, 03: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
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#24
  Alt 26. Okt 2002, 06: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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Salomon
Salomon

Registriert seit: 9. Jun 2002
453 Beiträge
 
#25
  Alt 26. Okt 2002, 09: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
01001000 01100001 01101100 01101100 01101111
01010111 01100101 01101100 01110100 00100001

http://www.it-adviser.net
  Mit Zitat antworten Zitat
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#26
  Alt 26. Okt 2002, 14: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
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
doc

Registriert seit: 21. Okt 2002
13 Beiträge
 
#27
  Alt 26. Okt 2002, 15:04
@ Jan
Was für ne IP hast du denn in deinem Lokalen Netzwerk (um auf Christian´s Posting zurücktzukommen)?

MfG doc
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#28
  Alt 26. Okt 2002, 15:17
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#29
  Alt 26. Okt 2002, 17: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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#30
  Alt 26. Okt 2002, 19: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
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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 19:13 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