2008-10-02 17 views
7

Me gustaría facilitarles a los usuarios reenviar un puerto en su NAT a su máquina local para mi aplicación C++. Me gustaría hacer que esto funcione en OSX & Windows. Linux sería una gran ventaja, pero los usuarios de Linux probablemente se sienten más cómodos reenviando puertos manualmente, por lo que es menos preocupante. El código tipo LGPL está bien, pero no puedo usar nada que sea GPL directo.¿Cuáles son las mejores opciones para el reenvío de puertos NAT?

Me encantaría escuchar pensamientos o experiencias que alguien ha tenido en esta área, pero algunas preguntas específicas vienen a la mente:

  • ¿Existe una mejor biblioteca reconocida por UPnP? El cliente MiniUPNP parece que podría funcionar, pero ¿hay algo más por ahí?
  • ¿Qué hay de Bonjour? ¿Puedo confiar en él para las computadoras OSX?
  • Todas las grandes aplicaciones de bittorrent tienen que lidiar con esto, entonces ¿hay una encuesta existente de cómo lo hacen? ¿Que hay de Skype?
+0

Skype no necesita reenviar puertos en modo nativo; utiliza un relevo (como muchos IM): por lo que la conexión del cliente es saliente. –

Respuesta

2

MiniUPNP es utilizado por al menos un cliente bittorrent (Transmisión) y debería funcionar bien.

0

Bonjour tanto en OS X como en Windows se puede utilizar para realizar asignaciones de puertos con enrutadores que admiten uPNP o NAT-PMP. No he usado el API (DNSServiceNATPortMappingCreate) pero he publicado con éxito servicios de área amplia en Windows y OS X detrás de un enrutador NAT-PMP. No estoy seguro de si sus usuarios de Windows querrán instalar Bonjour (aunque quizás ya lo tengan si usan iTunes o Safari) para usar su aplicación, pero la compatibilidad con OS X no debería ser un problema.

+0

¿Puedes proporcionar la fuente aquí? para el mapeo de puertos en iOS. Intenté con MiniUPNP pero no tuve suerte. –

Cuestiones relacionadas