Entwickler-Ecke

Internet / Netzwerk - Serverliste im Netzwerk


Visum - So 19.01.03 14:49
Titel: Serverliste im Netzwerk
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 - 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 !!


Visum - 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 - So 19.01.03 18:43

versuchs mal mit try...except
such mal danach hier im forum...du wirst einiges finden denke ich!


Visum - 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 - So 19.01.03 21:22

was ist an try exept so schlimm, benutze es einfach, der user merkt doch eh nichts!!! :wink:


Visum - So 19.01.03 21:54

:)

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 - 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!


hitstec - So 19.01.03 23:40

Versuchs mit:


Quelltext
1:
2:
3:
4:
5:
6:
clientsocket1.Address:=ip; 
try 
clientsocket1.Open;
except 
showmessage('Fehler'); 
end;


Visum - 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:

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