Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 08-11-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 Crandel
Nunca lo hice pero podrias probar hacer un ping a un puerto específico. Creo que la suite de Indy trae un componente para hacer ping.
Hasta donde yo se "ping" utiliza el protocolo ICMP que no tiene puertos.

En cuanto a la pregunta urtKami no conozco otra forma de hacerlo que intentar conectar con ese puerto, si podemos esta abierto, si no podemos esta cerrado

Código Delphi [-]
uses WinSock;

function EstaAbierto(Host: string; Puerto: Integer): Boolean;
var
  WSAData: TWSADATA;
  Address: u_long;
  HostEnt: phostent;
  Addr: sockaddr_in;
  CSocket: Tsocket;
begin
  Result:= FALSE;
  if WSAStartup(MAKEWORD(1, 1), WSADATA) = 0 then
  begin
    Address:= inet_addr(Pchar(Host));
    if Address = INADDR_NONE then
    begin
      HostEnt:= gethostbyname(PChar(Host));
      if HostEnt <> nil then
        Address:= PInteger(HostEnt.h_addr_list^)^;
    end;
    if Address <> INADDR_NONE then
    begin
      CSocket:= socket(AF_INET, SOCK_STREAM, 0);
      if CSocket <> INVALID_SOCKET then
      begin
        Addr.sin_family:= AF_INET;
        Addr.sin_addr.S_addr:= Address;
        Addr.sin_port:= htons(Puerto);
        Result:= connect(CSocket, Addr, Sizeof(Addr)) <> SOCKET_ERROR;
        Closesocket(CSocket);
      end;
    end;
    WSACleanup;
  end;
end;


// Por ejemplo
 if EstaAbierto('www.clubdelphi.com',80) then
   ShowMessage('Esta abierto')
 else
   ShowMessage('Esta cerrado');

PD: Si el puerto esta cerrado, puede que tarde un rato en responder, ten paciencia
Responder Con Cita
 


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
Cursor Abierto lucasarts_18 MS SQL Server 4 05-09-2005 21:54:49
Detectar archivo abierto StartKill API de Windows 2 14-12-2004 16:05:31
Archivo de excell abierto valentine API de Windows 2 03-06-2004 10:10:28
Compilar sin Delphi abierto Descendents Varios 1 04-12-2003 15:04:11
Microsoft: paladín del código abierto ... kinobi Debates 19 29-10-2003 13:03:40


La franja horaria es GMT +2. Ahora son las 19:04:51.


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