Hi Bogusław,
Tanks for reply...
Based on your information I changed the Main rotine, to Close the Socket, and
force the Thread terminate... Now It works :)
Some think link:
Result := False ;
TimeToEnd := IncMilliSecond(now,TimeOut) ;
ThreadScanPort := TThreadScanPort.Create( Host, Port );
try
while (not Result) do
begin
Result := ThreadScanPort.Found ;
if Result then
exit ;
if now > TimeToEndthen
exit ;
Application.ProcessMessages ;
sleep(100) ;
end ;
finally
Result := ThreadScanPort.Found ;
if not ThreadScanPort.Terminated then
ThreadScanPort.Sock.CloseSocket;
end ;
[]s Daniel
Conheça o Projeto ACBr - Automaçao Comercial Brasil
DJSystem a Loja Patrocinadora do ACBr
________________________________
De: Bogusław Brandys <[email protected]>
Para: Ararat Synapse <[email protected]>
Enviadas: Terça-feira, 12 de Maio de 2009 3:58:21
Assunto: Re: [Synalist] TCP Port Scanner
Daniel Simoes de Ameida wrote:
>
> Hi All,
>
> I want to Use Synapse for Scan on Internal Network where is the FireBird
> Server...
>
> I'm trying to do this, opening a TCP connection on Firebird's port
> (3050)... in a Thread... If it can connect, so (probally) I have a
> Firebird Server on this IP.
>
> It works only when a few Threads are instanced, but when more than 10
> threads are running, it don't connect...
>
> Exemple:
> FireBird Server is on IP 192.168.1.95
>
> Scanning from 192.168.1.90 to 192.168.1.95... correctlly finds the
> Server on 192.168.1.95
> Scanning from 192.168.1.80 to 192.168.1.95... can't find the Server on
> 192.168.1.95
>
> (Using 1 second for TimeOut)
>
> Here is the code:
>
>
> { TThreadScanPort }
>
> TThreadScanPort = class(TThread)
> private
> fsPort: String ;
> fsHost: String ;
> fsFound : Boolean ;
> protected
> procedure Execute; override;
> public
> constructor Create( Host: String; Port: Integer) ;
>
> property Found : Boolean read fsFound ;
> end;
>
> ......
>
> constructor TThreadScanPort.Create(Host: String; Port: Integer);
> begin
> FreeOnTerminate := True ;
> fsHost := Host ;
> fsPort := IntToStr(Port) ;
> fsFound := False ;
>
> inherited Create( False );
> end;
>
> procedure TThreadScanPort.Execute;
> Var
> sock: TBlockSocket;
> Erro: Integer;
> begin
> sock := TBlockSocket.Create;
> try
> sock.Connect( fsHost, fsPort ) ;
> Erro := sock.LastError ;
> fsFound := (Erro = 0);
> sock.CloseSocket;
> finally
> sock.Free ;
> end ;
> end;
>
>
> Using the TThreadScanPort with a TimeOut loop
>
> Function ScanTCPPort( Host : String; Port, TimeOut : Integer ) : Boolean ;
> Var
> TimeToEnd : TDateTime ;
> ThreadScanPort : TThreadScanPort ;
> begin
> { Criando Thread para monitorar a tentaiva de conexao a porta }
> Result := False ;
> TimeToEnd := IncMilliSecond(now,TimeOut) ;
> ThreadScanPort := TThreadScanPort.Create( Host, Port );
> try
> while (not Result) do
> begin
> if ThreadScanPort.Terminated then
> exit ;
>
> Result := ThreadScanPort.Found ;
> if Result then
> exit ;
>
> if now > TimeToEnd then
> exit ;
>
> Application.ProcessMessages ;
> sleep(100) ;
> end ;
> finally
> ThreadScanPort.Terminate ;
> end ;
> end ;
>
>
> What I'm doing wrong ?
>
> (PS: sorry my poor english)
>
> []s Daniel
>
And your Firebird database server is installed on .... Windows ?
Only Windows server editions have no limits to concurrent number of
TCP/IP connections.
Under Linux the same is a case for xinetd restricted to 10 concurrent
spawns but here fortunately it's only configuration setting easily
changeable.
Boguslaw
------------------------------------------------------------------------------
The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
production scanning environment may not be a perfect world - but thanks to
Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
Series Scanner you'll get full speed at 300 dpi even with all image
processing features enabled. http://p.sf.net/sfu/kodak-com
_______________________________________________
synalist-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/synalist-public
Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com------------------------------------------------------------------------------
The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your
production scanning environment may not be a perfect world - but thanks to
Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700
Series Scanner you'll get full speed at 300 dpi even with all image
processing features enabled. http://p.sf.net/sfu/kodak-com
_______________________________________________
synalist-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/synalist-public