可能な限りシンプルなクロスプラットフォームJava UPNPホールパンチライブラリ
-
29-09-2019 - |
質問
簡単なAPIを備えたライブラリが必要です。シンプルの定義:私にとって完璧な解決策は説明されているようなものです ここ しかし、JavaでのCrossPlatformの使用のためにアドップしました(私にとってはCrossPlatformは、Win、Mac、Linのスタンドアロンデストップアプリです)...それで、私がどのように見たいかをどのように見たいですか? oneiがC#にあるように:
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();
}
私はそれで何をするつもりですか? Google App App Engine Free Planの使用(クラウドのような)ファイルサーバーで簡単に使用したいと思います。アプリユーザーコンピューターに基づいて一般的なファイルサーバーがあります。
解決
ご覧ください 「Java RMIで穴を開ける, 、それは役に立つかもしれません。
他のヒント
私は周りを見回し、私が見つけた最も有望な図書館は miniupnp. 。これを行う方法に関する公式の仕様は呼ばれます UPNP IGD, 、そして、それは痛々しいほど複雑で、読むのが厄介です。
Javaからこれを行うことができるはずです。ネットワーク機能と、送信および受信するのに十分な特権が必要です 特別なポートのUDPパケット. 。私が作りました Pythonポーティングの試み それは私のLANで働いていました、あなたはそれを移植するかもしれません(それはminiupnpの単純化です)。時間をかけていない場合 Pythonを学びます, 、私はそれを強くお勧めします。
所属していません StackOverflow