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

 
 
Herramientas Buscar en Tema Desplegado
  #1  
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
Sobre el uso de TServerSocket y TClientSocket para conexiones TCP/IP

Hola a todos,

Me he decidido por abrir un hilo a ver si alguien puede echarme una mano, contestar algo al respecto, darme alguna idea, etc. Resulta que hace tiempo que vengo dando vueltas a cierto proyecto que trate de establecer conexiones TCP/IP, es decir, en pocas palabras, dicho proyecto o aplicación debería poder actuar como servidor y también como cliente, de manera que pudiera comunicarse con otras aplicaciones.

Me he planteado el asunto no pocas veces, pero, nunca he terminado de concretar nada. Algo importante, aunque, tal vez algo irracional, para mi proyecto, es que la misma aplicación pudiera actuar de servidor y de cliente a la vez, cosa que no he logrado con algunos de los componentes que he tratado de utilizar a lo largo del tiempo en que llevo dando vueltas al tema. Por ejemplo, con los componentes Indy, no he podido lograr este objetivo.

He tratado de utilizar todos los componentes que he ido encontrando, y he probado varios de ellos, también con la intención de no utilizar los componentes Indy u otros paquetes de componentes "grandes", en definitiva, tratando de mantener cierta independencia de mi proyecto respecto de grandes paquetes de componentes, pues, todos sabemos que Indy es mucho más que TCP/IP, afortunadamente, pero, yo preciso sólo esto último.

Pues bien. Resulta que he tenido siempre en mis narices el paquete de componentes "dclsockets.*", que, no viene instalado por defecto en Delphi, a partir de Delphi 6, me parece. No viene instalado por defecto, pero, dicho paquete de componentes se distribuye junto a Delphi, al menos en Delphi 2007 y hasta en Delphi XE2. Estoy hablando de los componentes "TServerSocket" y "TClientSocket", y que, aparentemente, cumplen casi a la perfección con lo que me había planteado en un principio.

Haciendo pruebas, veo que puedo hacer que una aplicación se comporte como servidor y como cliente. Que puedo "instanciar" varios clientes conectándolos al servidor y enviando y recibiendo texto (no Unicode) sin problemas. Además los componentes parecen más o menos sencillos de usar, y, hasta donde he llegado, parecen libres de errores, en el sentido de que su tratamiento también es sencillo y no se producen problemas "raros" o de "desconocida procedencia" para mí.

Creo que me estoy enrrollando demasiado y pido disculpas por ello. Los problemas o preguntas que se me plantean son más o menos las siguientes:

1º ¿Hay algo malo con estos componentes? Quiero decir, que, desaparecieron de la paleta en Delphi 6, aunque siguen estando disponibles, y, no encuentro que la unidad que los contiene en Delphi XE2 los marque como "deprecated" (¿depreciados?) o algo así. Yo he hecho pruebas en Windows 7 y todo parece funcionar bien, como digo, y, a falta de probar en Windows 8, diría que tampoco ahí tendrán problemas.

2º He leído en algunos lugares que dichos componentes hacen uso de ciertas características de Windows que han sido superadas, y, así se recomienda usar Indy, ICS o Synapse, por ejemplo, en lugar de los primeros. Pero considero confuso el uso de TCP/IP mediante los componentes que Indy tiene, o, como he dicho más arriba, preferiría utilizar algo más "sencillo". Por lo demás, ¿cómo es posible que los componentes sobre las "viejas" características de Windows *me* funcionen tan bien?

3º ¿Vosotros usaríais los componentes "TServerSocket" y "TClientSocket"? ¿Los estáis usando? ¿Preferís otros? Me parece curioso que en Delphi vengan de forma predeterminada los componentes "TTcpServer" y "TTcpClient", puesto que, aunque posteriores (si no me equivoco) no he conseguido tan buenos resultados con estos que con aquellos. ¿Me estaré volviendo loco, doctor? ¿Los componentes que se supone tenían que sustituir a los antiguos resultan peores? Pero esto no puede ser... sin duda el problema soy yo y no otra cosa.

En definitiva, a ver si podéis echarme una mano en este asunto. Todavía me quedaría encontrar la forma de enviar texto "unicode" con los componentes susomentados, aunque, estoy tan entusiasmado con ellos, que, incluso lo daría como una funcionalidad, simplemente, "no disponible" en la aplicación, supuesto que el resto del texto (ASCII) podría ser enviado y recibido sin problemas. Otra cosa sería el envío de archivos, una funcionalidad que se me hace duro dejar como "no disponible", supuesto que he hecho algunas pruebas y no he dado pie con bola.

Y eso es todo. Espero no haberte aburrido demasiado si has llegado hasta aquí. Seguramente tú sepas decirme algo sobre la "historia" que puede haber detrás de "TServerSocket" y "TClientSocket", y hasta de la historia que puede haber delante... cualquier comentario será bienvenido.

¡Muchas gracias!
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
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 07:47:52.


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