Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Colaboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-08-2012
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.211
Poder: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Esos componentes lo he usado sin problemas. Si en la documentación aparecen como obsoletos es porque usas la versión Socket 1.1 que está superada. Yo he usado esos componentes en comunicación con WinSock 2.2 en otros ejecutables que sólo usan la API (sin componentes) y funcionan bien.

Ahora que mencionas el tema se me ocurre, pues no lo he probado, actualizar el código fuente de una forma muy sencilla que en principio consistiría en cambiar una instrucción de los constructores:
Código Delphi [-]
WSAStartup($0101, WSAData);
por
Código Delphi [-]
WSAStartup(MakeWord(2, 2), WSAData);
En concreto sería cambiarlo en el procedimiento Startup de ScktComp.pas:
Código Delphi [-]
procedure Startup;
var
  ErrorCode: Integer;
begin
  ErrorCode := WSAStartup(MakeWord(2, 2), WSAData); //WSAStartup($0101, WSAData);
  if ErrorCode <> 0 then
    raise ESocketError.CreateResFmt(@sWindowsSocketError,
      [SysErrorMessage(ErrorCode), ErrorCode, 'WSAStartup']);
end;

Habría que revisar muchas mas cosas, pero para empezar...

Así que, si te animas, realiza el cambio y recompila los componentes; prueba y me cuentas...


Saludos.

Última edición por escafandra fecha: 26-08-2012 a las 18:40:43.
Responder Con Cita
  #2  
Antiguo 26-08-2012
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.142
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

¡Muchas gracias por responder tan rápido además! La verdad es que no me he resistido y he estado haciendo pruebas y hasta adelantando el proyecto de que he hablado, todo sin problemas, a falta de probar realmente el servidor y el cliente, esto es, desde otro ordenador diferente al mío. Yo creo que voy a terminar usando estos componentes por varias razones, algunas de ellas ya mencionadas arriba, pero, me alegra experiencia, que aporta un poco de luz al tema.

Y hablando de tu experiencia y tu propuesta. En efecto, el procedimiento "Startup" es tal como dices, tanto en Delphi 2007 como en Delphi XE2. Ahora bien, se me ocurren dos cosas. En primer lugar, ¿es posible modificar dicho código sin más? Al fin y al cabo está bajo copyright the Embarcadero. Pero, además, ¿realmente haría falta? Me explico. ¿No se usará la última versión de Winsock, incluso si se especifica que no sea así? ¿Entonces porqué funcionan tan bien? ¿Y en Windows 7 nada menos? ¿No puede ser la versión 1 aquí una especie de "wrapper" que termine usando la nueva versión?

En fin. Gracias de nuevo por contestar. Y que se anime quien quiera a comentar cualquier otra cosa: todas ellas serán bienvenidas.
Responder Con Cita
  #3  
Antiguo 26-08-2012
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.142
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola de nuevo,

Entre otras cosas, en la documentación que enlacé en mi anterior mensaje, puede leerse esto:

Cita:
The current version of the Windows Sockets specification is version 2.2. The current Winsock DLL, Ws2_32.dll, supports applications that request any of the following versions of Windows Sockets specification:

1.0
1.1
2.0
2.1
2.2
Aunque mi inglés es pésimo, yo entiendo que, aunque tú solicites usar la versión 1.1, por ejemplo, lo que en realidad ocurre, si existe una versión superior, es que se usará esta versión superior, pues soporta la "interfaz" de la versión anterior. Y ahí es donde digo que pueden haberse solucionado los problemas que menciona el compañero más arriba, en el sentido de que dichos problemas acaso se dieran sólo en la versión 1.1 (por ejemplo), pero, esta sólo se usará donde no se disponga de otra cosa, y eso será raro, pues, desde Windows 95, parece ser, se incluye la versión 2.2... ¿estoy equivocado o esto puede ser más o menos así?

Última edición por dec fecha: 26-08-2012 a las 20:07:27.
Responder Con Cita
  #4  
Antiguo 26-08-2012
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.211
Poder: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Yo lo que entiendo es que es compatibles hacia atrás...

WinSock 2.2 añade mas funcionalidades y funciones pero quizás para tu propósito no sea necesario: Windows Sockets 2


Saludos.
Responder Con Cita
  #5  
Antiguo 26-08-2012
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.142
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Eso digo, escafandra, que, aunque yo "cargue" la versión 1.0, terminará usándose la versión que esté instalada (la 2.2 es la última y será la probablemente instalada), siendo que, los posibles problemas detectados en la versión 1.0, no afectarán al programa, pues al final se acabará usando la versión 2.2 de WinSock. El caso es que, con sus limitaciones (de momento sin texto Unicode y hasta sin enviar archivos) me parecen dos componentes excelentes por su buen resultado y hasta diría que eficacia.

Lo digo teniendo en cuenta los problemas que he encontrado cuando he tratado de usar otros componentes (que no han sido pocos), aunque, para decir toda la verdad, no pocos de estos problemas, seguramente, puedan achacárseme a mí. En este caso, me limitaré a decir que estos componentes me parecen realmente sencillos de usar (los puedo usar hasta yo) y prácticos, a mi parecer, siempre que se necesite conectar clientes con servidores y viceversa. ¿Eh?
Responder Con Cita
  #6  
Antiguo 27-08-2012
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.211
Poder: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Bueno. con los sockets puedes enviar y recibir cualquier cosa, no sólo texto. Puedes hacerte funciones para enviar y recibir ficheros, pero si te apetece algo hecho puedes usar la API TransmitFile


Saludos.
Responder Con Cita
  #7  
Antiguo 27-08-2012
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.142
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Cita:
Empezado por escafandra Ver Mensaje
Bueno. con los sockets puedes enviar y recibir cualquier cosa, no sólo texto. Puedes hacerte funciones para enviar y recibir ficheros, pero si te apetece algo hecho puedes usar la API TransmitFile


Saludos.
Echaré un vistazo. Muchas gracias otra vez escafandra, de veras me has dado el empujón que me faltaba para confiar en estos componentes.
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
tClientSocket, tServerSocket StartKill Varios 5 26-04-2011 21:00:34
TClientSocket/TServerSocket kdemia Varios 2 19-03-2011 11:07:49
TClientSocket y TServerSocket kdemia Internet 2 02-06-2010 21:43:19
TClientSocket / TServerSocket WAN-LAN FunBit Varios 2 27-11-2009 17:41:22
TClientSocket y TServerSocket fled Internet 10 14-06-2004 08:35:33


La franja horaria es GMT +2. Ahora son las 00:13:58.


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