Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-11-2004
johncook johncook is offline
Miembro
 
Registrado: oct 2004
Posts: 65
Poder: 20
johncook Va por buen camino
Indy+Cliente Mensajería+Ip, etc...

Hola, que tal?
Estoy desarrollando un servicio de mensajería instantánea al estilo messenger.
Paso a explicar mas o menos la lógica de la aplicación.

1-El cliente se logue en el servidor.
2-El servidor lo valida, crea una entrada en una lista dinámica con la ip del cliente y con el mail del mismo.
3-El servidor envía al cliente la lista de sus contactos con sus respectivas direcciones Ip's.

Nota: Envía las Ip's porque la idea es que los clientes, una vez logueados, puedan conectarse directamente entre ellos, sin necesidad de generar tráfico en el servidor, además de facilitar la transferencia de archivos entre los mismos.

Paso a ejemplificar la situación a resolver:
Supongamos:

Lan 1: Pc A Lan 2: Pc B, Pc C, Pc D

Las pc's de la Lan 2 comparten una única conexión a internet. Por lo tanto la dirección Ip de las Pc's B,C y D en el servidor son las mismas.

Pc A se conecta al servidor
El servidor envía a Pc A una lista de contactos, entre los cuales figura "juancito", que está conectado en la Pc D, de la Lan 2.
Como hace Pc A, para conectarse a 'juancito' si todas las Pc's de la lan 2 comparten una única conexión a internet (ya sea a través de router o proxy)?
Otra pregunta que quería hacer, es si alguien conoce una mejor manera de que un TidTcpClient sepa que tiene datos para leer sin utilizar un Timer, ya que el mismo congela la aplicación en cuestión-
Y si no es mucho joder, podrían decirme para que sirve TidTcpIntercept?
Agradecería cualquier tipo de ayudas.
Desde ya muchas gracias.
Chau.
Responder Con Cita
  #2  
Antiguo 09-11-2004
Avatar de DarkByte
DarkByte DarkByte is offline
Miembro
 
Registrado: sep 2003
Ubicación: Desconocido
Posts: 1.322
Poder: 22
DarkByte Va por buen camino
Cita:
Empezado por johncook
Hola, que tal?
Aquí... madrugando
Cita:
Empezado por johncook
Estoy desarrollando un servicio de mensajería instantánea al estilo messenger
Como todos cuando empezamos con sockets
Cita:
Empezado por johncook
1-El cliente se logue en el servidor.
2-El servidor lo valida, crea una entrada en una lista dinámica con la ip del cliente y con el mail del mismo.
3-El servidor envía al cliente la lista de sus contactos con sus respectivas direcciones Ip's.
Cuidado con el punto tres... asegúrate de que tienes la verdadera ip del cliente... además... si el cliente tiene router, al intentar conectarse otro usuario a el.. no podrá...
Cita:
Empezado por johncook
Nota: Envía las Ip's porque la idea es que los clientes, una vez logueados, puedan conectarse directamente entre ellos, sin necesidad de generar tráfico en el servidor, además de facilitar la transferencia de archivos entre los mismos.
El servidor tiene más tráfico... pero asi es más seguro el funcionamiento de la aplicación.

Cita:
Empezado por johncook
Como hace Pc A, para conectarse a 'juancito' si todas las Pc's de la lan 2 comparten una única conexión a internet (ya sea a través de router o proxy)?
Mmm.. ¿te has mirado bién el protocolo TCP/IP? Estás intentando hacer un coche sin haber hecho antes una bicileta.. Los pc's que están en red tienen todos la misma Ip Externa (la accesible desde internet), que es la del Router, Proxy, Firewall u ordenador que le ceda la conexión a todos. Pero además también tienen una ip intenta que los identifica DENTRO de la red. Normalmente esa ip es 192.168.1.x , donde X es el número del pc en red

Cita:
Empezado por johncook
Otra pregunta que quería hacer, es si alguien conoce una mejor manera de que un TidTcpClient sepa que tiene datos para leer sin utilizar un Timer, ya que el mismo congela la aplicación en cuestión
Yo usé un Thread o hilo de ejecución... va de perlas.
Cita:
Empezado por johncook
Y si no es mucho joder, podrían decirme para que sirve TidTcpIntercept?
Ep! ahí ya que no tengo ni idea... pero por el nombre me suena a Sniffer



Hasta luego!
__________________
:)
Responder Con Cita
  #3  
Antiguo 09-11-2004
johncook johncook is offline
Miembro
 
Registrado: oct 2004
Posts: 65
Poder: 20
johncook Va por buen camino
Bueno Darkbyte, gracias pero al fin y al cabo no me respondiste nada, solo el tema de utilizar un hilo en vez de un Timer(es lo que usaba, pero no me convencía).
Respecto al tema del TCP-IP, creo que nadie sin el conocimiento mínimo, se pondría a desarrollar una aplicación con socket's no?
Ahora seguimos nuevamente con el problema. Lo que quiero saber, es si se puede hacer o no lo que necesito. Es decir si todo lo debe manejar el servidor.
De paso voy a describir un paquete Ip, para ver si alguien me puede ayudar con eso. Básicamente tendríamos lo siguiente:
Ip Origen : Dirección Ip que genera la petición.
Puerto Origen : Puerto asignado por el router o proxy, a la Ip que genera la petición.
Ip Destino
Puerto Destino
Ahora ejemplifiquemos nuevamente la situación que anteriormente describí.
El servidor por supuesto, tiene Ip fija.
Juancito se conecta al servidor a través de un router que comparte con las otras 2 pc's de su Lan. La dirección privada de "juancito" es 192.168.0.1, mientras que la Ip pública del router es 200.43.90.12. Como el router trabaja con "sobrecarga de NAT (Network Address Translation), cuando juancito desea conectarse al servidor, el router le asigna un puerto origen, por ejemplo el 8080. Luego el router hace la petición de juancito a la Ip del servidor, pero utilizando la IP 200.13.., poniendo como puerto de origen el 8080. Como todos sabemos, el servidor responderá la petición del router por el mismo puerto que llego, es decir el 8080. Entonces el router hace el mapeo inverso. Se fija a quién asignó el puerto 8080 (juancito) y le devuelve el paquete.
Bueno, la idea es si puedo saber cual es el puerto origen de la dirección Ip que genera la conexión y, si me serviría de algo. Tengo una vaga idea de que la propiedad peerport, me serviría de algo, pero no estoy del todo seguro.
Sea bienvenida cualquier sugerencia.
Muchas gracias
Responder Con Cita
Respuesta



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


La franja horaria es GMT +2. Ahora son las 22:31:56.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi