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

 
 
Herramientas Buscar en Tema Desplegado
  #5  
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
 


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 19:54:07
Conectas Deplhi con SQL Server Rodriguez Conexión con bases de datos 1 28-10-2005 23:18:09
TMediaPlayer... Algunas Preguntas de Utilidad para Todos Niko Varios 2 18-04-2005 21:02:42


La franja horaria es GMT +2. Ahora son las 14:52:29.


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