AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Netzwerk scannen mit Socket nicht möglich
Thema durchsuchen
Ansicht
Themen-Optionen

Netzwerk scannen mit Socket nicht möglich

Ein Thema von famnig · begonnen am 7. Apr 2007 · letzter Beitrag vom 8. Apr 2007
Antwort Antwort
famnig

Registriert seit: 10. Jan 2006
Ort: Eschwege
3 Beiträge
 
Delphi 2005 Personal
 
#1

Netzwerk scannen mit Socket nicht möglich

  Alt 7. Apr 2007, 14:36
Hallo!

Ich brauch mal eure Hilfe.
Ich versuche gerade ein Programm zu programmieren, welches ein Netzwerk nach einem anderen Programm scannt, welches dort als Host aktiv ist. Wenn es nun unter einer IP das Programm findet, soll es einen Vermerk in eine ListBox machen und weiter suchen, bis er bei 255 angelangt ist. Das suchende Programm ist der Client.

Bis jetzt hab ich folgendes zusammen:

Code:
procedure TForm21.Button1Click(Sender: TObject);
begin
 i:=1;
 Clientsocket1.Active:=false;
 Clientsocket1.Host:='192.168.0.'+inttostr(i);
 Label2.Caption:='192.168.0.'+inttostr(i);     //Anzeige der aktuellen IP
 Clientsocket1.Active:=true;
 Clientsocket1.open;
end;

procedure TForm21.hinzu(Sender: TObject; Socket: TCustomWinSocket);
begin
  Clientsocket1.Close;
  ListBox1.Items.Add('OK 192.168.0.'+inttostr(i));
  i:=i+1;
  Clientsocket1.Active:=false;
  Clientsocket1.Host:='192.168.0.'+inttostr(i);
  Label2.Caption:='192.168.0.'+inttostr(i);
  Clientsocket1.open;
end;

procedure TForm21.Fehler(Sender: TObject; Socket: TCustomWinSocket;
  ErrorEvent: TErrorEvent; var ErrorCode: Integer);
begin
  if Errorcode=10049 then begin
    Clientsocket1.Close;
    ListBox1.Items.Add('XX 192.168.0.'+inttostr(i));
    i:=i+1;
    Clientsocket1.Active:=false;
    Clientsocket1.Host:='192.168.0.'+inttostr(i);
    Label2.Caption:='192.168.0.'+inttostr(i);
    Clientsocket1.open;
  end;
  Errorcode:=0;
end;
Bei Button1.Click wird gestartet, bei hinzu fügt er der Listbox ein OK hinzu mit IP, bei Fehler ein XX mit IP.
Leider hört er gleich am Anfang auf zu suchen. Wenn ich im localhost Adressbereich suche (127.0.0.*) gibt er mir einheitlich XX aus, obwohl ja die erste aktiv ist.

Ich hoffe mir kann jemand helfen. Bin am verzweifeln.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#2

Re: Netzwerk scannen mit Socket nicht möglich

  Alt 7. Apr 2007, 14:40
Läuft denn der Server auch auf deinem lokalen Rechner oder nur auf einem fremden Rechner im LAN?
  Mit Zitat antworten Zitat
famnig

Registriert seit: 10. Jan 2006
Ort: Eschwege
3 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Netzwerk scannen mit Socket nicht möglich

  Alt 8. Apr 2007, 11:48
Der Server läuft im Moment zusammen mit dem client in einem Programm auf meinem Rechner. Nur zu Testzwecken. Später will ich den server dann in ein anderes programm integrieren und den client da lassen.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: Netzwerk scannen mit Socket nicht möglich

  Alt 8. Apr 2007, 17:39
Ok, dann mal den Code durchgehen...

1. Active := true ist das gleiche wie Open
2. Ich empfehle eher Socket.Close aufzurufen anstatt das Close des ClientSockets.
3. Wenn 2. erfolgt (im Fehler wie auch im Erfolgsfall), dann im OnDisconnect den neuen Verbindungsversuch starten und nicht direkt von dem Event welches den Erfolg/Fehler meldet.
4. Im Fehlerfall (OnError) kannst du normalerweise mit dem Socket nichts mehr anfangen, also den Socket unabhängig vom Fehlercode einfach schliessen. Es macht da keinen Unterschied den Grund näher zu unterscheiden (ausser dem Nutzer aufzubereiten).
5. Dein Befüllen des Labels wie auch der ListBox ist mehrfach vorhanden. Schreib dir eine Methode welches dieses erledigt und einfach nur den aktuelle IP übergeben bekommt.
  Mit Zitat antworten Zitat
Antwort Antwort


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 02:33 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