标签: zeroconf

除了JMDNS之外,还有其他任何用于bonjour/zeroconf的Java库吗?

除了JMDNS之外,还有其他任何用于bonjour/zeroconf的Java库吗?

java bonjour zeroconf

45
推荐指数
3
解决办法
2万
查看次数

如何在Android上发现zeroconf(Bonjour)服务?我在使用jmDNS时遇到了麻烦

我正在使用Droid/Android 2.0.1并遇到一个显然很多人遇到的问题:我无法使用我所知道的一个纯Java zeroconf库jmDNS来发现服务.(Apple的Bonjour,虽然它适用于Linux和Windows Java,但我相信由于依赖本机代码而难以移植到Android.)

我可以创建服务,但不能发现它们.我想弄清楚发生了什么.

这里有一份持续的问题报告; 与多播和IPv6有关,但似乎也在抛弃jmDNS的用户:http://code.google.com/p/android/issues/detail? id = 2323

知道为什么这个人可能会成功吗?请参阅错误报告中的注释22.(我是SO的新手,因此无法发布多个网址.)

我测试了他们的代码,但没有运气.

有没有人使用jmDNS或其他库在Android上成功完成zeroconf服务发现?

我的发现问题是否可能与IPv6组播问题有关?

android bonjour zeroconf

38
推荐指数
3
解决办法
3万
查看次数

Android上的Bonjour实现

我想在我的Android应用程序上实现bonjour/zero conf.我正在使用jmDns库来搜索所有可用的设备.以下是我用于搜索同一网络中的设备的代码:

public class ListDevices extends ListActivity {
    JmDNS jmdns;
    JmDNSImpl impl;
    MulticastLock lock;
    protected ServiceListener listener;
    protected ServiceInfo info;
    public ListView lv;
    public ArrayList<String> deviceList;
    public int cancel = 0;
    public final static String TAG = "ListDevices";

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        deviceList = new ArrayList<String>();
        showAllPrinters();

        setListAdapter(new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, deviceList));

        lv = getListView();
        lv.setTextFilterEnabled(true);

        lv.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long …
Run Code Online (Sandbox Code Playgroud)

android bonjour zeroconf jmdns

29
推荐指数
2
解决办法
3万
查看次数

Android NSD没有发现所有服务

我正在尝试使用Android Native Service Discovery运行应用程序,但有时当我运行应用程序时,它不会从我的网络中发现所有服务.我使用四个galaxy nexus 运行来自https://github.com/joeluchoa/nsd的代码,并且大多数时候他们每个人同时发现不同数量的服务.

基本上我使用ServerSocket运行服务:

ServerSocket server = new ServerSocket(0);
Log.i(TAG, "IP " + server.getInetAddress()
        + ", running on port " + server.getLocalPort());

Intent intent = new Intent(MySocket.this,
        MyPresence.class);
intent.putExtra("PORT", server.getLocalPort());
startService(intent);
Run Code Online (Sandbox Code Playgroud)

然后我使用NsdManager中的registerService方法发布它:

NsdServiceInfo serviceInfo = new NsdServiceInfo();

serviceInfo.setServiceName(Build.SERIAL + "-" + new Date().getTime());
serviceInfo.setServiceType(SERVICE_TYPE);
serviceInfo.setPort(port);

mNsdManager.registerService(serviceInfo, NsdManager.PROTOCOL_DNS_SD,
        mRegistrationListener);
Run Code Online (Sandbox Code Playgroud)

要发现服务,我使用NsdManager中的方法discoverServices:

mNsdManager.discoverServices(SERVICE_TYPE, NsdManager.PROTOCOL_DNS_SD,
        mDiscoveryListener);
Run Code Online (Sandbox Code Playgroud)

使用mDiscoveryListener如下:

mDiscoveryListener = new NsdManager.DiscoveryListener() {

    @Override
    public void onDiscoveryStarted(String regType) {
        Log.d(TAG, "Service discovery started");
    }

    @Override
    public void onServiceFound(NsdServiceInfo service) { …
Run Code Online (Sandbox Code Playgroud)

android zeroconf service-discovery wifi-direct

29
推荐指数
2
解决办法
5812
查看次数

如何使用mDNS将所有子域路由到单个主机?

我有一个开发网络服务器托管为"myhost.local",使用Bonjour/mDNS.服务器正在运行avahi-daemon.

网络服务器也想处理自己的任何子域.例如"cat.myhost.local"和"dog.myhost.local"和"guppy.myhost.local".

鉴于myhost.local位于dhcp的动态ip地址上,是否还有办法将子域的所有请求路由到myhost.local?

我开始认为目前不可能......

http://marc.info/?l=freedesktop-avahi&m=119561596630960&w=2

您可以使用/ etc/avahi/hosts文件执行此操作.或者,您可以
使用avahi-publish-host-name.

不,他不行.因为他想要定义一个别名,而不是一个新的主机名.即他只想注册A RR,没有反向PTR RR.但是如果你在/ etc/avahi/hosts中粘贴了一些内容,那么它会注册两者,如果PTR RR是非唯一的,则检测到冲突,这就是别名的情况.

mdns bonjour zeroconf

22
推荐指数
3
解决办法
9656
查看次数

Android可以通过蓝牙支持Zeroconf/Bonjour吗?TCP/IP怎么样?

在iPhone上如果我创建自定义服务,例如"_test._tcp.local".在Bonjour我可以通过WiFi或/和蓝牙寻求/广播这项服务.

在Android上有可能吗?

我知道有jmDNS,但从我的理解,它只能通过WiFi /网络, 而不是蓝牙.

谢谢

由Seva Alekseyev编辑,他提供了赏金:我不是经过解决方法(比如Zeroconf sans Bluetooth或Bluetooth sans Zeroconf).我追求真实的东西.

java networking android zeroconf bluetooth

20
推荐指数
1
解决办法
3346
查看次数

在Javascript中发现Bonjour?也许?

所以它是一个远景,我将从那开始.

是否可以单独在javascript中发现bonjour广告的HTTP服务?

为什么这会有用?想象一下本地服务正在寻找一些数据(例如您当前的纬度/经度),数据通过网络服务公开并由Bonjour Zeroconf做广告.一个(远程)网站可能想知道你当前的纬度/经度,而不是必须知道你正在运行MyGPSserverVersion2,该网站可以使用javascript搜索本地bonjour _Compatible_location_services._tcp,然后一旦有了IP地址就继续.

如果这是不可能的(我认为可能就是这种情况,Javascript是相当受限制的)然后有什么障碍,是否有人对如何克服它们有任何想法?

javascript bonjour zeroconf

18
推荐指数
2
解决办法
1万
查看次数

我可以从命令行使用Bonjour吗?

是否可以从命令行使用Bonjour?例如,如果我想注册一个服务,我输入类似的东西:bonjour -register service_name port.然后Bonjour为我的服务分配一个免费的IP.或者,例如,如果我想查看可用服务列表,我输入类似:bonjour -showServices.然后我获得所有可用服务的列表及其名称,IP地址和端口.这样的事情存在吗?

我对现有文档感到困惑.例如这里,在文档的开头我看到:

要注册您的服务,请调用DNSServiceRegister.

我应该在哪里打电话?在命令行?在Java?在C++中?在python中?没有提供这种背景有点奇怪.

一般来说,我只找到关于zeroconf和Bonjour的一般信息(它应该做什么).但我找不到具体而简单的东西.像"Hello World"一样使用Bonjour的例子.

任何人都可以帮助我吗?

networking bonjour zeroconf

15
推荐指数
3
解决办法
2万
查看次数

在Zeroconf/Bonjour上发布的最简单方法?

我有一些我想用zeroconf看到的应用程序.

  1. 有一种简单的可编写脚本的方法吗?
  2. 我的网络管理员是否需要执行此操作才能启用此功能?

Python或sh是首选.特定于操作系统的建议欢迎使用Linux和OS X.

python bonjour zeroconf

14
推荐指数
4
解决办法
9219
查看次数

lwIP是否支持Zeroconf?

我看到lwIP有一些AutoIP(又名IPv4LL,又名RFC 3927)代码,但我不知道它是否在Zeroconf堆栈中做了更高的任务,即mDNS和DNS-SD(使用RFC 2782).

那么,lwIP是否支持DNS-SD服务发现?如果没有,从Avahi这样的项目中移植代码是否容易(假设许可允许)?

c embedded networking zeroconf lwip

13
推荐指数
2
解决办法
3542
查看次数