Ach ja ein Problem gibt es noch, was ich mir fast schon gedacht habe!
Da die
IP ja x.x.x.x vier Stellen hat und ich also drei weitere Forschleifen davor geschaltet habe, wird der Pc überlastet.
Er sagt mir das der Puffer voll ist
Genau gesagt!
Windows socket error:Ein Socketvorgang konnte nicht ausgeführt werden, da dem System Pufferspeicher fehlte oder eine Warteschlange voll war
(10055), on
API'connect'
Wie kann ich nach einer bestimmten Zeit den Speicher wieder freigeben!
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var
i,c,b,a: Integer;
begin
ListBox1.Clear;
ListBox2.Clear;
For a:=1 to 255 do
Begin
For b:=1 to 255 do
Begin
For c:=1 to 255 do
Begin
For i:=1 to 255 do
begin
Client1.host:='192.'+inttostr(b)+'.'+inttostr(c)+'.'+inttostr(i);
Try
Client1.Open;
Application.ProcessMessages;
if Client1.Socket.Connected then
Begin
ListBox1.Items.Add(Client1.Host);
exit;
end
else
//ListBox2.Items.Add(Client1.Host);
Client1.Close;
except
beep;
end;
end;
if Client1.Socket.Connected then
Begin
exit;
end;
end;
end;
end;
end;
Oder kann ich vielleicht 4 verschieden Proceduren anlegen, weil ja nach dem schliessen der Procedure der speicher wieder freigegeben wird?
Ich weiss das der scan bei mehr als 4 Millaren möglichkeiten vermutlich nie fertig wird aber ich wollte eine Eingrenzung später möglich machen!
Die Fehlermeldung kommt auch schon bei einem Spektrum von 192.168.1.1 bis 192.168.3.1 also ja nur 765 Möglichkeiten!
Gibs da vielleicht ne Möglichkeit?
Danke!