Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-08-2006
Avatar de Lautarox
Lautarox Lautarox is offline
Registrado
 
Registrado: jun 2006
Posts: 8
Poder: 0
Lautarox Va por buen camino
Quisiera que si un "proceso" del programa es realizado bien, cumpla otra cierta funcion.
Y sobre los ports, me podrias postear un codigo de mas o menos como seria probar si el port esta ocupado? Port TCP
Responder Con Cita
  #2  
Antiguo 12-08-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
En cuanto a la primera pregunta, tienes varias formas:

Si tienes que usar un procedure, deberá añadir un parámetro que se modifica según convenga. Creo que lo propio es usar una función; te dejo ambos ejemplos:

Código Delphi [-]

procedure Hazlo( var ObjetivoCumplido:Boolean);
begin
 // hacer todas las tareas

 if NoError then
   ObjetivoCumplido := true
 else
   ObjetivoCumplido := false;
end;

function HacerTarea :Boolean;
begin
  if noerror then 
    Result := true
  else 
   Result := false;
end;

procedure Preguntando;
var Cumplido:Boolean;

Cumplido := false;
Hazlo(cumplido);
if Cumplido then
  ShowMessage(' hizo bien la tarea')
else
  ShowMessage(' NO hizo bien la tarea');

cumplido := HacerTarea;
ShowMessage(BooltoStr(cumplido, true));

// Un código más elegante puede ser:
if HacerTarea then
begin
  // lo que sea
end;
end;
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 12-08-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 26
seoane Va por buen camino
Cita:
Empezado por Lautarox
Y sobre los ports, me podrias postear un codigo de mas o menos como seria probar si el port esta ocupado? Port TCP
Claro que puedo, pero eso depende de los componentes que quieras usar. si por ejemplo estas usando TServerSocket o TIdTCPServer de Indy podríamos utilizar algo como esto:
Código Delphi [-]
try
  ServerSocket.Active:= TRUE;
except
  ShowMessage('El puerto ya esta en uso');
end;

Si lo que quieres es encontrar un puerto libre, puedes usar algo como esto, que encuentra el primer puerto libre a partir del 1024:
Código Delphi [-]
ServerSocket.Port:= 1024;
While not ServerSocket.Active do
try
  ServerSocket.Active:= TRUE;
except
  ServerSocket.Port:= ServerSocket.Port + 1;
end;

Y si no quieres usar ningun componente puede utilizar esta función,que devuelve TRUE si el puerto esta en uso:
Código Delphi [-]
uses WinSock;       // Es importante añadir esto a las uses

function EnUso(Puerto: Integer): Boolean;
var
  WSADATA: TWSADATA;
  ServerSocket: TSocket;
  LocalAddr: TSockaddr;
begin
  Result:= TRUE;
  // Inicializamos Winsock
  if WSAStartup(MAKEWORD(1, 1), WSADATA) = 0 then
  try
    // Creamos el socket del servidor
    ServerSocket := socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
    if ServerSocket <> INVALID_SOCKET then
    begin
      with LocalAddr do
      begin
        sin_family := AF_INET;
        // Aqui colocamos el puerto a usar
        sin_port := htons(Puerto);
        sin_addr.s_addr := htonl(INADDR_ANY);
      end;
      // Ponemos el socket a la escucha ...
      if bind(ServerSocket, LocalAddr, sizeof(LocalAddr)) <> SOCKET_ERROR then
        if listen(ServerSocket, SOMAXCONN) <> SOCKET_ERROR then
          Result:= FALSE;
      CloseSocket(ServerSocket);
    end;
  finally
    WSACleanup();
  end;
end;

Por ultimo, si lo que quieres es algo un poco mas potente que nos haga un listado con todos los puertos abiertos de nuestro equipo, como hace el comando "NetStat -a" puedes echarle un vistazo a este programa que publique hace unos dias aqui que es un clon del NetStat y esta echo en delphi.
Responder Con Cita
  #4  
Antiguo 12-08-2006
Avatar de Lautarox
Lautarox Lautarox is offline
Registrado
 
Registrado: jun 2006
Posts: 8
Poder: 0
Lautarox Va por buen camino
Me han sorprendido :O la verdad que me ayudaron muchisimo, les estoy muy agradecido; el proyecto que estoy haciendo es un port scanner q supuestamente scanearia los puertos de una determinada ip y si encuentra algun port que usa un troyano sale una alerta :P, es solo x seguridad por si alguna de esas pensas q estas infectado, siempre hay q darle un vistazo a los ports...
Alguna idea de como podria hacer que la procedure se haga muchas veces scaneando un diferente port hasta llegar a una variable maxima?

Última edición por Lautarox fecha: 12-08-2006 a las 17:28:06.
Responder Con Cita
  #5  
Antiguo 13-08-2006
nemesio nemesio is offline
Miembro
 
Registrado: nov 2005
Ubicación: Isla de Margarita, Venezuela
Posts: 377
Poder: 21
nemesio Va por buen camino
Utiliza un ciclo, y revisa los puertos con él.

Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
No se q pasa con mi deplhi jakuna OOP 1 22-04-2006 20:54:07
Conectas Deplhi con SQL Server Rodriguez Conexión con bases de datos 1 29-10-2005 00:18:09
TMediaPlayer... Algunas Preguntas de Utilidad para Todos Niko Varios 2 18-04-2005 22:02:42


La franja horaria es GMT +2. Ahora son las 18:28:59.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi