![]() |
usar upnp con Delphi para configurar nat en un router?
Hola,
He leído en algunas páginas, por Internet, que utilizando upnp es posible añadir un registro a la tabla de nat del router, de tal forma que un programa que contenga un servidor tcp pueda "escuchar" de forma transparente, sin que el usuario tenga que configurar el router o firewall. Incluso he encontrado este código:
pero no consigo que funcione. ¿Alguén sabe algo sobre este tema? Muchas gracias. Un Saludo. |
Antes de nada ¿te aseguraste de que tu router soporta UPnP y que esta habilitado? :confused:
|
Y se me olvidaba para que funcione tienes que tener instalado "Interfaz de usuario UPnP". Lo puedes instalar des "Agregar y quitar progrmas" -> "Agregar o quitar componentes de windows" -> "Servicios de red" -> "Interfaz de usuario UPnP
|
Gracias Seoane,
El router si soporta UPnP y está habilitado. Igualmente, tengo instalado Windows XP y también tengo instalado el servicio (tal como comentas) de uPnP. Pero... al ejecutar el código que indiqué, delphi me da un access violation. Alguna sugenrecia? gracias nuevamente. Un Saludo. |
Me pregunto en que tipo de aplicación estas usando esa función ¿con formularios? ¿de consola?. De todas formas prueba utilizando la función CoInitialize antes de llamar a la función.
Por lo demás a mi me funciona perfectamente |
Hola de nuevo.
Pues la verdad es que no ando muy espavilao con este código, es decir, que es la primera vez que utilizo upnp y logicamente ando un poco perdido. Para probarlo, lo estoy ejecutando desde un formulario normal y corriente. ¿debería funcionar en un formulario? Depurando el código veo que en esta línea: La variable "Ports" tiene asignada la dirección $00000000 y al ejecutar la siguiente línea: da el access violation. He introducido la línea CoInitialize(nil); al principio de la función y obtengo el mismo resultado. Gracias por contestar seoane. Un Saludo. |
Perdona de nuevo Seasone,
¿Sabes algo sobre esto (me tiene intrigado)?: Si tengo dos redes y en ambas desactivo la opción de upnp de los routers: ¿Como puede ms Messenger conectar directamente a mi ip pública para mantener una conversación entre dos usuarios? (un usuario de cada red, claro) Gracias. Un Saludo. |
Cita:
Piensa que durante una conversación de messenger ambos clientes están conectados al servidor de msn y no conectados entre si. Solo se conectan directamente entre ellos cuando se envían un fichero, o se utiliza la cámara web o el micrófono. En esos casos, solo hace falta que uno de los dos tenga un puerto abierto. |
Cita:
No obstante, lo que me intriga es que en mi caso, con upnp descativado en los dos router al enviar un fichero por ms messenger (de un usuario de una red a otro de otra red) crea una conexión directa entre las ip's publicas de ambos routers :confused: Creo que ... ¿es imposible realizar conexiones directas por socket's sin redireccionar puertos (cuando hay routers por medio, claro)? ¿no? Gracias seoane y perdona la guerra que te estoy dando con este tema. |
La franja horaria es GMT +2. Ahora son las 06:16:35. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi