Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Conectar con pc que usen routers. (https://www.clubdelphi.com/foros/showthread.php?t=59295)

rauros 21-08-2008 19:23:09

Conectar con pc que usen routers.
 
Saludos a todos. He hecho un programa abre como un texto un archivo cualquiera. Que manda a una persona el nombre y la extension del archivo en 200 bytes (si el string del no llega a 200 carácteres rellena hasta 199 con espacios y añade un carácter raro al final (◙)). Y luego manda de 255 en 255 carácteres el archivo y si el último no llega a 255 lo rellena como antes he puesto.
Luego cuando la persona recibe los paquetes, si el último carácter es el carácter raro, lo elimina y hace la funcion trim solo hacia la derecha. Todos los paquetes de 255 los guarda en un memo y luego automáticamente graba el archivo con el nombre y extensión.
Me he dado cuenta que esto no funciona nunca jaja, supongo que porque lo de cortarlo como un texto es una gran tontería que nunca llegará a funcionar.

Y por eso pregunto yo ahora, hay alguna manera mejor (bueno, que funcione) de hacerlo?
Lo de rellenar con espacios es porque cuando intento leer un stream si me paso de largo me da un error, y si me paso de corto pues no recibo nada. Entonces envío siempre el mismo tamaño.

Y claro, esto solo funciona si al ordenador al que voy a mandar los paquetes tiene un módem, si tiene un router nunca funciona. Y por funcionar digo que llegan los bytes.

Muchas gracias por la ayuda.

javier7ar 21-08-2008 22:28:56

no se bien como te estaras manejando, pero me imagino que con sockets, entonces estas enviando a / escuchando en un puerto, ese puerto tenes que configurarlo en el router para que lo reenvie a la maquina que esta escuchando. La configuracion de los routers varia segun la marca, asi que fijate en el manual del que tenes como abrir un puerto. Saludos

rauros 21-08-2008 23:02:11

Ya, pero es que me gustaría seguir los pasos de cualquier otro programa en el que o una de dos, los puertos los abre solo, o escucha un puerto abierto. La mayoría de los juegos no son necesarios abrir puertos, porque si no casi nadie jugaría por internet. Estoy usando el protocolo Tcp Ip con los componentes cliente y servidor de las indy. Entre conexiones del mismo router la escucha es posible. Pero cuando mando datos a otro router que no es el mío es como si los datos se quedaran en el router, como si ningún ordenador lo está escuchando. Si por mi fuera yo abriría los puertos, pero el problema es que quiero que cualquier persona lo pueda usar, porque a la mayoría de la gente que conozco, la sacas de descargarse cosas del bittorrent y se lían...

Y luego está el problema de cortar los archivos y envíarlos. Que si uso un editor de texto para leerlo y luego lo copio de nuevo no funciona. Muchas gracias por ayudar Javier7ar.

matabyte 23-08-2008 04:42:35

A ver, el problema de los puertos es más difícil de lo que parece. Puedes crear una excepción de tu programa en el firewall de windows para permitir que se comunique, pero con eso no vale.

Luego está el router, que normalmente tiene los puertos cerrados, así que tienes que investigar con upnp a ver si está disponible y abrir los puertos.

Tienes que configurar la máquina servidor (firewalls, routerts, etc..) para que permita todas las conexiones entrantes y salientes por los puertos que vayas a utilizar.

rauros 23-08-2008 23:47:21

La máquina servidor es lo de menos, el problema es la máquina cliente. No hay otra manera, de conectarse con un servidor sin abrir puertos? Y si es posible fuera del puerto 80?

Luego también me gustaría saber lo de cortar los archivos. Que con el editor de textos no funciona.

Muchas gracias por la ayuda.


La franja horaria es GMT +2. Ahora son las 12:04:47.

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