我的项目是创建像AirDrop of Apple这样的应用程序。为此,我需要为我的应用程序创建一个特定的网络,以便只有我的应用程序可以选择这个网络,我必须使用Java。据我所知,Java没有wifi库。那么我的项目选择是什么?
我无法使用以太网连接。我必须使用类似蓝牙的网络,它只能找到网络中的现有应用程序。
如果我遗漏了什么,我很抱歉。我对网络也不太好。
答案 0 :(得分:4)
AirDrop for Mac OS X基本上使用mDNS来发现运行AirDrop的同一网络上的其他计算机,然后使用常规TCP / IP连接来传输文件。这意味着您不必为您的应用创建特定的网络"。
有一个名为JmDNS的Java mDNS库。
有关Java中的网络的一般信息,我建议this trail from the Oracle Java Tutorial(All About Sockets
部分更具体)。
另请注意,适用于iOS的AirDrop使用了一种涉及蓝牙和WiFi的不同方法,这与AirDrop for Mac OS X不同。
附录:看起来AirDrop还使用一些特定于WiFi芯片组的功能与当前网络连接同时创建Ad-Hoc网络。创建Ad-Hoc网络取决于操作系统,实际上超出了Java程序的范围。另请参阅:this,this和this。
但是,只要计算机连接到同一网络,这不应该阻止您尝试mDNS方法。