Autor Beitrag
Visum
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 106



BeitragVerfasst: So 19.01.03 14:49 
Hi,
wie kann ich eine Liste aller IPs erstellen, auf denen ein bestimmter Server läuft?

Momentan lese ich alle IPs aus der Netzwerkumgebung aus und versuche dann zu connecten. Dummerweise ist das nicht allzu schnell und beim connecten entsteht fast jedesmal ein Fehler (halt wenn kein Server antwortet).

Wo anders im Forum hab ich was von Broadcast gehört, da hab ich aber keinen Plan von :oops:

mfG
Visum
matze
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 4613
Erhaltene Danke: 24

XP home, prof
Delphi 2009 Prof,
BeitragVerfasst: So 19.01.03 16:03 
du könntest ja alle IPs pingen. dann siehst du ob da ein rechner online ist und dann versuchst du dich da hin zu connecten !!

_________________
In the beginning was the word.
And the word was content-type: text/plain.
Visum Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 106



BeitragVerfasst: So 19.01.03 17:57 
einfach alle IPs zu pingen dauert zu lange.

wie kann ich connecten, ohne dass fehlermeldungen auftreten?
Kann ich die Fehlermeldungen irgendwie abfangen, oder gibt es einen schöneren Weg, bei dem erst gar keine Fehler entstehen?

visum
waldmeister
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 136

Win XP
D7 Enterp
BeitragVerfasst: So 19.01.03 18:43 
versuchs mal mit try...except
such mal danach hier im forum...du wirst einiges finden denke ich!

_________________
der wald....der meister....der meister des waldes....der waldmeister
Visum Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 106



BeitragVerfasst: So 19.01.03 21:16 
try ... except blocks sind mir schon klar, nur ist das halt keine schöne art einen erwarteten fehler abzufangen (darüber wurde schon diskutiert).

aber solange es die einzige möglichkeit ist, werd ich es wohl so machen
thx
torstenheinze
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 461



BeitragVerfasst: So 19.01.03 21:22 
was ist an try exept so schlimm, benutze es einfach, der user merkt doch eh nichts!!! :wink:
Visum Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 106



BeitragVerfasst: So 19.01.03 21:54 
:)
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
try
clientsocket1.Address:=ip;
clientsocket1.Active:=true;
except
showmessage('Fehler');
end;

So, diesen code hab ich ausserhalb der Entwicklungsumgebung laufen lassen. Trotzdem bringt das Programm jedes mal eine Fehlermeldung (asyncronous socket error), arbeitet aber die except-klausel nicht ab (es kommt kein 'Fehler'.

ist das überhaupt so richtig, um zu prüfen, ob eine verbindung hergestellt werden kann (also ob ein server antwortet)?
waldmeister
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 136

Win XP
D7 Enterp
BeitragVerfasst: So 19.01.03 23:12 
starte das programm ma einzeln un net im debug modus von delphi...bei delphi kommt die fehlermeldung nämlich immer!

_________________
der wald....der meister....der meister des waldes....der waldmeister
hitstec
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 295



BeitragVerfasst: So 19.01.03 23:40 
Versuchs mit:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
clientsocket1.Address:=ip; 
try 
clientsocket1.Open;
except 
showmessage('Fehler'); 
end;
Visum Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 106



BeitragVerfasst: Mo 20.01.03 20:56 
@waldmeister: jo, hab ich, der fehler kommt trotzdem und das except wird trotzdem nicht berücksichtigt

@hitstec: geht irgendwie auch nicht

ich glaub ich habs doch noch gefunden:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm1.ClientSocket1Error(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
begin
showmessage('Fehler');
errorcode:=0;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
clientsocket1.Active:=true;
end;

trotzdem danke an alle für die hilfe :D
visum