PDA

Ver la Versión Completa : Velocidad en ejecución de sockets


Grunch
25-07-2003, 00:13:20
Saludos soy nuevo en delphi, y quería hacerles una consulta a ver quien me puede sugerir alguna solución.

Estoy comenzando a hacer una aplicación de análisis de seguridad en servidores de internet y lo primero que quiero que haga es un escaneo de puertos, el problema es que lo hace demasiado lento, aquí les pongo el código, es muy básico pero la velocidad es excesivamente lenta y de verdad necesito incrementarla

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

procedure TForm1.BitBtn1Click(Sender: TObject);
var
x,y,i: integer;
begin
x := StrToInt(Edit1.Text);
y := StrToInt(Edit2.Text);
With IdTCPClient1 do
begin
for i := x to y do
begin
s := IntToStr(i);
try
port := i;
connect;
except
ListBox1.Items.add('Puerto '+s+' Cerrado');
end;
end;
end;
end;

procedure TForm1.IdTCPClient1Connected(Sender: TObject);
begin
ListBox1.Items.add('Puerto '+s+' Abierto');
IdTCPClient1.Disconnect;
end;
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

pense que el problema era que estaba usando componentes indy y los cambien por los otros q trae delphi y se comporta igual, entonces busque info sobre winsock y lo desarrolle utilizando directamente las API winsock a ver si asi se incrementaba la velocidad y nada.

Hasta instale Borland C++ Builder y lo hice en c++ a ver si aumentaba y tampoco, lo ultimo que he averiguado es la posibilidad de usar multi-threads pero apenas me estoy instruyendo en eso, creo que eso podria ser la solucion, me gustaria saber sus impresiones y si me recomiendan un buen texto en español preferiblemente sobre threads o alguna otra solucion, saludos y gracias de antemano..

__hector
26-07-2003, 19:17:53
Tu solucion es definitivamente utilizar aplicaciones multihilos (multithreading). Te advierto desde ahora que no es exactamente sencillo (no por desanimar), y al mismo tiempo te paso este enlace, que a pesar de estar en ingles, es el mejor documento que he visto acerca de la programacion multihilos en delphi:

http://www.pergolesi.demon.co.uk/prog/threads/ToC.html

Grunch
29-07-2003, 02:22:35
bueno, ya había conseguido por ahí ese link pero todavía tenia esperanza de conseguir algo en español, tendré que meterle al gringlés :S

de todas maneras gracias y saludos

Grunch
29-07-2003, 21:24:10
bueno me respondo a mi mismo, aquí les dejo este link que explica bastante bien y sencillo el uso de threads, no es muy completo pero sirve para empezar

http://www.latiumsoftware.com/es/pascal/delphi-1.php

saludos