Java 从Android应用程序自动查找本地网络上的服务器
我正在开发一个由服务器和安卓应用程序组成的系统,它必须联系上述服务器。在应用程序中,目前可以指定服务器地址,但我们现在希望客户端自动在本地网络上查找服务器,使其更可用。我目前对该问题的理解是,我可以将消息发送到本地广播地址Java 从Android应用程序自动查找本地网络上的服务器,java,android,rest,network-programming,Java,Android,Rest,Network Programming,我正在开发一个由服务器和安卓应用程序组成的系统,它必须联系上述服务器。在应用程序中,目前可以指定服务器地址,但我们现在希望客户端自动在本地网络上查找服务器,使其更可用。我目前对该问题的理解是,我可以将消息发送到本地广播地址255.255.255,然后该消息将到达本地网络中的所有IP。到目前为止,我得出了以下结论: try { DatagramSocket discoveryBroadcaster = new DatagramSocket(); discoveryBroadcast
255.255.255
,然后该消息将到达本地网络中的所有IP。到目前为止,我得出了以下结论:
try {
DatagramSocket discoveryBroadcaster = new DatagramSocket();
discoveryBroadcaster.send(new DatagramPacket(msg.getBytes(),msg.getBytes().length,
InetAddress.getByName("255.255.255.255"),8000));
}
catch (IOException e) {
e.printStackTrace();
}
我们通过RESTful接口与服务器通信。我希望我们发送的消息是一个GET请求,这样我们就可以在服务器上作为端点实现响应,就像其他任何东西一样。问题是,我知道创建GET请求的唯一方法是通过httpurlconnection
类,该类首先需要一个目标URL。因此,我的问题是:
解决这个问题的一个好方法是让服务器和android应用程序都跟随 在服务器和android应用程序上配置其中一个实现后,您将获得您要查找的服务器的IP地址。然后,您将能够像往常一样发送http请求
这里有一些关于Zeroconf的好文章。关于Zeroconf的更多信息,它在Android中被称为网络服务发现 您的服务器广播该服务,android设备收听该服务:
我可以向本地广播地址发送消息
I?谁会发送这个消息?消息是什么?我们通过RESTful接口与服务器通信
。您的服务器与此有什么关系?或者客户端是如何与服务器通信的?我不明白您想用querystring作为GET请求发送什么。请举例说明内容。客户端将使用DatagramSocket
发送这样的消息,如代码片段22所示。RESTful接口与此相关,因为我们希望与服务器的所有通信都是RESTful的,如果可能的话,包括发现请求。