2010-10-11 5 views
1

J'ai besoin d'une bibliothèque avec API simple. Définition simple: la solution parfaite pour moi serait quelque chose comme décrit here mais addopted pour l'utilisation crossplatform en Java (crossplatform pour moi est autonome app desctop pour Win, Mac, Lin) ... Alors, comment API je voudrais voir ressemble? Comme celui que j'ai en C#:Bibliothèque de perforation Java UPNP aussi simple que possible, multiplateforme

using TCMPortMapper; 

private void Form1_Load() 
{ 
    PortMapper.SharedInstance.Start(); 
    PortMapping pm = new PortMapping(localPort, publicPort, 
     PortMappingTransportProtocol.TCP); 
    PortMapper.SharedInstance.AddPortMapping(pm); 
} 
private void Form1_FormClosing() 
{ 
    PortMapper.SharedInstance.StopBlocking(); 
} 

Qu'est-ce que je prévois en faire? Je veux créer facile à utiliser avec Google App Engine gratuit planifié distribué (nuage comme) serveur de fichiers qui serait généralement basé sur les utilisateurs de mon application ordinateurs ... pour ainsi dire qu'ils utilisent mon application, ils l'hébergent =)

+0

Balise C# parce que l'échantillon de code provient de C# lib et de C parce que C# lib est l'enveloppe C lib – Rella

+0

"ils l'hébergent"? Que diable voulez-vous dire ici? – Riduidel

+0

ils l'hébergent ... –

Répondre

1

I regardé autour et la bibliothèque la plus prometteuse que j'ai trouvé était miniupnp. Les spécifications officielles sur la façon de faire sont appelées UPnP IGD, et c'est douloureusement compliqué et méchant à lire.

Il devrait être possible de le faire à partir de Java, vous avez besoin de capacités réseau, et des privilèges suffisants pour envoyer et recevoir UDP packets on special ports. J'ai fait un Python porting attempt qui a fonctionné sur mon LAN, vous pourriez le porter (c'est une simplification de miniupnp). Si vous n'avez pas pris le temps de learn Python, je le recommande vivement.

+0

Le mini démon ne fonctionne pas sous Windows. –

+0

Essayez de le compiler avec cygwin, ou portez-le pour utiliser Winsock (c'est trivial à faire). Le reste devrait aller bien. –

Questions connexes