Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Aplicaciones Cliente Servidor

Estas en el tema de Aplicaciones Cliente Servidor en el foro de Visual Basic clásico en Foros del Web. ¿existe forma de conectar dos equipos desde internet para realizar una transferencia de archivos? He desarrollado un cliente y un servidor que soporta conexiones multiples, ...
  #1 (permalink)  
Antiguo 26/06/2006, 11:52
 
Fecha de Ingreso: febrero-2006
Mensajes: 155
Antigüedad: 18 años, 3 meses
Puntos: 0
Exclamación Aplicaciones Cliente Servidor

¿existe forma de conectar dos equipos desde internet para realizar una transferencia de archivos?

He desarrollado un cliente y un servidor que soporta conexiones multiples, ahora bien.

cuando un cliente le va enviar un archivo al otro, envio la peticion al servidor "enviararchivos"
esta solicita al otro cliente la ip y el puerto disponible, una vez capturados los envia al cliente que solicito enviar y comienza la tansferencia de archivos.

Esto me funsiona en redes locales, pero no en internet, y no quisiera llegar a la necesidad de enviar mi archivo al servidor y que a su vez se envie al otro cliente por que saturaria mi ancho de banda del servidor...

¿existe alguna solucion a este problema?
¿se puden conectar dos equipos fuera de la red local?
Sin IP Fija

Que se conecten

Cliente1 (ip dinamica)

Servidor (IP FIJA)

Cliente2 (ip dinamica)

Cliente1 --- transferencia de archivos archivos --- Cliente2
| |
------------------------------------------------------
|
Conectados al Servidor (IP FIja)
  #2 (permalink)  
Antiguo 26/06/2006, 13:16
Avatar de marcos1979  
Fecha de Ingreso: abril-2004
Ubicación: 62º 06' 18" O / 33º 07' 47" S
Mensajes: 331
Antigüedad: 20 años
Puntos: 1
Hola, en teoria y segun mis conocimientos, deberia funcionar como lo tenes. Si el servidor "negocia" las IP y puertos para que luego Cliente1 se conecte a Cliente2 segun la IP y el puerto que negocio el servidor no deberia haber problemas.
Revisa los cortafuegos por si acaso. Ten en cuenta que si los clientes estan detras de un router puede ser que éste les asigne Ip dinamicas pero son "internas" y no las puede ver el otro cliente. Lo mas probable es que cuando negocia la Ip le de la del router y no la de la PC. No se, es lo que se me ocurre.
Cual es el problema concreto? que errores te da?

Otra cosa, supongo que el servidor no esta detras de un router o, si lo está, el router esta configurado para redirigir correctamente las peticiones, de lo contrario no podrias conectar los clientes al servidor.

Un saludo
__________________
Marcos

El dinero no da la felicidad... démelo y sea feliz!!!
  #3 (permalink)  
Antiguo 27/06/2006, 13:55
 
Fecha de Ingreso: febrero-2006
Mensajes: 155
Antigüedad: 18 años, 3 meses
Puntos: 0
Exactamente ese es el problema

Exactamente ese es el problema, cuando envio la peticion al servidor me detecta la ip del equipo donde se esta ejecutando el cliente, pero sucede que si esta detras de un router con un ip asignada por el router no se logra conectar el cliente 1 con el cliente 2

supongo que por que esa ip no existe por que es asignada por el router y trabaja de manera interneta en su misma red.

este es mi problema no se conectan cliente1 con cliente2 si uno o los dos estan detras de un router

saludos
  #4 (permalink)  
Antiguo 27/06/2006, 21:41
Avatar de marcos1979  
Fecha de Ingreso: abril-2004
Ubicación: 62º 06' 18" O / 33º 07' 47" S
Mensajes: 331
Antigüedad: 20 años
Puntos: 1
Si el servidor (o el cliente que tiene el metodo Listen) esta detras de un router no vas a poder conectarte a él ya que no tienes una Ip válida (si podras a la inversa), salvo que configures el router adecuadamente.
Como dices la Ip es "de uso interno" (si lee algun experto en redes que perdone los terminos :D )
Yo no conozco ninguna forma de hacer que eso funcione, tal vez si preguntas en el foro de redes te den una idea sobre como configurar el router para que reenvie las peticiones adecuadamente.

Algo que se me ocurre seria algo asi:

Cliente1 se conecta al servidor
Cliente2 se conecta al servidor
Al solicitar la tranferencia del archivo, el servidor le dice al Cliente-Origen donde subir el archivo (seria un servidor de internet, gratuito seria mejor... supongo. Algo tipo ftp)
El servidor le dice al Cliente-Destino que ya lo puede descargar y le pasa el link
Cliente2 descarga el archivo directamente desde internet

Con esto no hay tráfico por el servidor (salvo las negociaciones y demas) y no se necesita conexion entre Cliente1 y Cliente2.
El problema seria que la tranferencia no seria instantánea, sino que primero hay que subirlo y despues bajarlo.
Es solo una idea :)

Lamento no poder ayudarte mas que esto, espero que puedas resolver tu problema

Un saludo
__________________
Marcos

El dinero no da la felicidad... démelo y sea feliz!!!
  #5 (permalink)  
Antiguo 27/06/2006, 22:10
 
Fecha de Ingreso: febrero-2006
Mensajes: 155
Antigüedad: 18 años, 3 meses
Puntos: 0
Asi es, es la unica forma que veo pueda ser posible, lo que are sera una carga directa y despues un reenvio al otro cliente.

No ftp por la razon que el sistema es de chat para soporte tecnico, que al solicitar ayuda el usuario final dara control del equipo al operador y este comenzara a recibir pantallas del cliente usuario final. mi intencion es que fuese en tiempo real o instantanea el envio y la recepcion de las pantallas.

Aun no comprendo como hacen los mensajeros como Yahoo y MSN que si yo envio un archivo a otro usuario que esta dentro de mi misma red se envia a velicidad de intranet, no se va al servidor y despues al otro usuario sino que se coneca de manera directa al otro usuario, lo mismo pasa con yahoo y con NTRinquiero www.inquiero.com son conexiones directas al otro usuario, conexion punto a punto se podria decir. y no cliente<>servidor<>cliente el servidor solo actua como intermediario para realizar la conexion entre uno y otro. esto se puede comprovar al estar enviando o recibiendo un archivo iniciamos msdos y ejecutamos el comando "netstat -a" notaremos que la conexion para la transferencia bien directamente del otro usuario y nos muestra la ip del router en caso de que este este bajo uno.

habra que hacer una investigacion mas a a fondo acerca del tema, si encuentro alguna solucion dejare el mensaje aqui, aun que ya llevo un mes buscando una solucion.

Saludos
----------
Roberto Corona
  #6 (permalink)  
Antiguo 28/06/2006, 11:36
 
Fecha de Ingreso: febrero-2006
Mensajes: 155
Antigüedad: 18 años, 3 meses
Puntos: 0
Perdon el comentario del comando en DOS "netstat -a" es quivocado
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 23:05.