Hvorfor siger den så det når jeg bruger dette. var i : integer; X : integer; ip : string; startafIp : string; begin server := edit1.text; i := 1; X := 999; startafip := edit1.Text; While (I < X) do begin i := i + 1; if length(server) > 0 then with clientsocket1 do begin host := server + inttostr(i); active := true; end; end;
var InStr : String; State : Integer; { TDataopsamling }
constructor TLogOnController.Create; begin inherited Create(true); FreeOnTerminate := false; end;
destructor TLogOnController.Destroy; begin inherited; end;
procedure TLogOnController.execute; var TmpStr : String; //i : Integer; begin inherited; FOnConnectEvent(False); FOnStateEvent(1); FOnStatusEvent(\'Trying to connect: Ip \'+IPNo+\':\'+IntToStr(Port)); FClientSocket.Host := IPNo; FClientSocket.Port := Port; FClientSocket.Connect; if not FClientSocket.Connected then begin FOnErrorEvent(\'Could not connect to: Ip \'+IPNo+\':\'+IntToStr(Port)); Exit; end; Sleep(WriteDelay); FClientSocket.Write(#27); FOnStateEvent(2); FOnStatusEvent(\'Handshaking....\'); InStr := FClientSocket.ReadLn(\'> \', -2); FOnStateEvent(3); FOnStatusEvent(\'Connected to: Ip \'+IPNo+\':\'+IntToStr(Port)); if FClientSocket.Connected then FOnConnectEvent(True) else FOnConnectEvent(False); end;
procedure TLogOnController.SetOnStateEvent(const Value: TStateEvent); begin FOnStateEvent := Value; end;
procedure TLogOnController.SetOnStatusEvent(const Value: TStatusEvent); begin FOnStatusEvent := Value; end;
procedure TLogOnController.SetOnErrorEvent(const Value: TErrorEvent); begin FOnErrorEvent := Value; end;
procedure TLogOnController.SetOnConnectEvent(const Value: TConnectEvent); begin FOnConnectEvent := Value; end;
end.
Og når du kalder tråden:
begin if not IdTCPClient.Connected then begin With TLogOnController.Create do begin OnStateEvent := WriteState; OnStatusEvent := WriteStatus; OnErrorEvent := WriteError; OnControllerConnectedEvent := WriteControllerConnect; IPNo := \'213.237.15.207\'; Port := 82; FClientSocket := IdTCPClient; WriteDelay := 0; resume; end; end else IdTCPClient.Disconnect;
morten_s fint med den side og jo som du siger så kan en ip kun gå til 255. og ja hvad mon han skal bruge den til :) men hvis det er til privat-net må han jo gerne :0
if Assigned(FOnConnectEvent) then FOnConnectEvent(False);
ellers for du accessviolation hvis du ikke har en event tilknyttet og så skulle du måske også overveje at kalde dine event\'s i en syncronize procedure da du ellers kan løbe ind i problemer hvis du laver GUI opdates i dem.
Jeg ved ikke om jeg kan bruge alt dette til noget, det kan jeg sikkert godt, men jeg kan ikke forsåt det hele, det jeg endeligt vil lave er et program der kan igennem netværk finde ud af hvilke ip der er aktive, så skal den skrive IP\'en og Computernavnet i en memo1, håber i ved hvad jeg mener, skriv det så simpelt som muligt, jeg skal nok sætte nogle flere point til, hvis det er nødvendigt.
når det er at du skal lav en ipscanner skal du ikke connecte på den måde som du gør, du bliver nød til at pinge computeren for at se om den svarer. sååå er det bare med at gå igang :)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.