Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Comunicación entre mi Pc y mi Servidor en hosting (https://www.clubdelphi.com/foros/showthread.php?t=95793)

ElDuc 22-08-2022 10:16:58

Comunicación entre mi Pc y mi Servidor en hosting
 
Buenos días / tardes / Noches.:)

Después de muchos días intentando solucionar el enunciado de este post, haciéndolo de casi todas las maneras que he encontrado en este foro y en Google, me he decidido a pediros auxilio.

Yo no soy un profesional informático, mi carrera siempre ha estado relacionada con la gestión empresarial, pero soy un amante de Delphi. Empecé con Borlan Turbo Pascal Orientado a Objetos, Delphi 2,3, ....;);)

Entrando en materia:
Dispongo de una App desarrollada con Delphi 2010 y un Servidor alojado en el extranjero. Mi SO es Windows 10, tanto en mi Pc como en el servidor.
Hasta ahora el servidor lo he utilizado para hacer correr mi App sin riesgo (o menos riesgo) a los cortes de luz que sufro en casa.
No contraté el servidor para temas de Web, por lo que no dispongo de un dominio y me conecto con la Ip de mi servidor.
Ahora estoy intentando comunicar la App del servidor con la App de mi Pc.

He probado:
Indy (por primera vez)
Sockets (siempre me ha funcionado bien en mi Pc)
TcpClient (por primera vez)
WebBrowser
He tenido que crear un sitio Web en el servidor y he conseguido la conexión.
El problema es que para conseguir lo que necesito, tengo que hacer cosas con Html y Asp/Aspx. No desearía tener que aprender todo esto nuevo para mi.

Todos los sistemas que he probado me funcionan bien en mi Pc, pero no con el Servidor.
Estoy convencido de que no funcionan porque no los configuro adecuadamente, abro puertos en el servidor, etc

La cuestión es que si alguno de vosotros ya ha pasado por esto, tiene tiempo y desea compartirlo conmigo, se lo agradecería un montón.

Necesito saber, en vuestra opinión, que componentes son los más adecuados para la comunicación privada entre el Server(hosting) y mi Pc.
Como configurar el componente Cliente y Servido.
Si tengo que hacer algo en el servidor.
Y ya puestos, si penáis que debería encriptar la información y cómo hacerlo.
Si habéis leído hasta aquí, os doy las gracias por vuestra paciencia y quedo a la espera de vuestras sugerencias.

Casimiro Noteví 22-08-2022 10:20:14

Me parece que no ha quedado claro qué quieres hacer, ¿ejecutar el programa? ¿trabajar con la base de datos? ¿usarlo con control remoto? :confused:

ElDuc 22-08-2022 10:31:30

Disculpa Casimiro,:mad:
Mi intención es pasar comando (propios) Server->Client y Server<-Client, para que cada uno de ellos realice distintas tareas según el comando que reciba.

Como he dicho el lenguaje de comandos es propio, por ejemplo:
Client a Server "<GetHora>"
Server a Client "<Hora>=12:30"
Es un ejemplo tono, pero espero que sirva para clarificar lo que pretendo.

chenech 22-08-2022 12:34:43

DataSnap
 
Respuesta corta: DataSnap puede que te sirva.
Yo lo uso mucho y me funciona muy bien tanto en redes locales como remotas al mismo tiempo, muy rápido y se puede encriptar y multiplataforma, tengo el server en Windows y los clientes son Windows y Android.
Un server que reciba y responda JSON y un cliente que envie y reciba JSON, por ejemplo, lo puedes hacer con esto muy facilmente.
Un saludo.

ElDuc 22-08-2022 12:42:08

Muchas gracias chenech, lo pruebo y te comento.

ElDuc 22-08-2022 12:47:56

Por cierto, si alguien me pudiera pasar un link a información sobre el uso de DataSnap, me permitiría ir más rápido.

Gracias.

ElDuc 22-08-2022 17:04:51

Lo siento, pero no soy capaz.

Espero que alguien pueda ayudarme.

:mad::mad:

Casimiro Noteví 22-08-2022 18:06:41

Hay varios ejemplos aquí en los foros, haz una búsqueda por "datasnap".
Tampoco es algo que aprendas en un rato, tendrás que dedicarle tiempo.
Yo nunca lo he usado.


ElDuc 22-08-2022 18:29:41

Gracias Casimiro, el problema es que no sé bien como funciona el buscar, casi nunca encuentro nada.

¿Sabes si hay alguna guia de cómo funciona el buscador del Club?

Casimiro Noteví 22-08-2022 19:04:57

Pues simplemente escribes "datasnap" y pulsas intro.
Devuelve estos enlaces, echa un vistazo y ten paciencia.

O usas google y pones: "datasnap site:www.clubdelphi.com"
Y salen estos enlaces.

ElDuc 22-08-2022 20:00:18

Muchas gracias Casimiro por tu colaboración.

Casimiro Noteví 22-08-2022 20:41:40

Te ayudaría más, pero es que no he usado nunca datasnap.
:rolleyes: Creo que eso ya lo había dicho antes.

mamcx 22-08-2022 21:48:21

Estas tirando de un montón de opciones sin tener claro el porque.

"Comunicarse" es muy amplio. Que método es es el mejor varia, no es lo mismo para videojuegos, chats, apps de negocios, sitios web.

Aunque supongo que datasnap sera suficiente para ti.

---

Con respecto a la configuración, lo que necesitas es tener una IP "publica" que te asigna el proveedor de internet o el de hosting. Luego debes abrirle los puertos (que solo deben ser, a lo sumo, el del servidor de red (datasnap y/o servidor web 80/443) + el que uses para administrar (ssh o escritorio remoto, preferiblemente sobre una VPN).

Con esto, todos los clientes se conectan a esa IP y eso debería ser todo.

chenech 23-08-2022 00:06:48

DatasNap
 
El servidor lo puedes hacer desde Nuevo proyecto, Server Datasnap, ya te crea una aplicación con lo mínimo y te crea dos funciones de ejemplo que devuelven un string, a partir de ahí añades las que tu quieras o modificas la que están, pero ya puede ver como se envía y recibe.
Para el cliente es un poco mas complicado por que no hay un creador de proyectos automático como con el server (creo, por que no lo he usado, pero en el creador de proyectos hay algo de cliente datasnap también), pero basicamente es poner un componente TSQLConnectio y en el parámetro Driver especificar Datasnap, tendrás que seleccionar el host server, la IP, el puerto, si quieres verificación, validación de usuario, etc. Por supuesto, tanto el servidor como el cliente deben tener el mismo puerto, TCP, HTTP, HTTPS solo los protocolos soportados.
Aquí puedes ver ejemplos y un tutorial bastante completo, con funciones que envian y reciben parámetros e incluso con base de datos.
https://docwiki.embarcadero.com/RADS...d_Architecture

ElDuc 25-08-2022 17:45:53

Bueno señor@s,

Sigo sin ser capaz.

Ahora voy a cambiar de hostig para intentar empezar de cero, porque ya he perdido totalmente el control de server, he abierto puertos, he cerrado puertos, etc.

Espero poder realizar esta tarea, aparentemente tan sencilla pero, que no soy capaz.

Si consigo algún logro, lo publicaré en el club para que nadie más pase por la agonía que estoy pasando yo

Muchas gracias a todos por vuestra colaboración.

Casimiro Noteví 25-08-2022 18:14:11

¿Un hosting en el que tú puedes abrir/cerrar puertos? ¿será uno autogestionado?

ElDuc 01-09-2022 08:42:27

Hola Casimiro, gracias por tu interés.

Sí el hosting que tengo ahora es autogestionado, pero es "virtual" y con una atención al cliente nula.

Ahora estoy mirando con Arsys un servidor dedicado con atención técnica ocasional, es decir "autogestionado" pero con técnicos a los que te puedas dirigir con dudas técnicas.

No sé si es el mejor hosting posible, pero está en Logroño y lo conozco desde hace años.

Por cierto si tu o algun clubero conoce alguno mejor, plis, me lo decís.

PD: Si alguien sabe si se puede hacer y cómo, me interesaría que mis hilos o de otros a los que sigo, me mandaran un email cuando se añade algún comentario.

ElDuc 01-09-2022 15:42:05

Seño@s,

Lamento haber dado la lata.

TServerSocket y TClientSocket me funcionan perfectamente.

El problema es que mi servidor remoto forma parte de un conjunto de servidores que tiene mi hijo y resulta que él tiene un firewall por encima del propio del del windows de mi servidor.

Ha bastado con que él me abriera el puerto en su firewall y ya funciona perfectamente.

Muchas gracias a todos por vuestra participación.

Casimiro Noteví 01-09-2022 19:39:19

:D Los hijos vienen cargados de problemas :D


La franja horaria es GMT +2. Ahora son las 05:41:43.

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