Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从Android应用程序自动查找本地网络上的服务器_Java_Android_Rest_Network Programming - Fatal编程技术网

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。因此,我的问题是:

  • 是否可以将GET请求组成字符串,然后将其发送到广播地址
  • 向广播地址发送GET请求是否有效
  • 以上是解决这个问题的正确或可行的方法吗

  • 解决这个问题的一个好方法是让服务器和android应用程序都跟随

    在服务器和android应用程序上配置其中一个实现后,您将获得您要查找的服务器的IP地址。然后,您将能够像往常一样发送http请求


    这里有一些关于Zeroconf的好文章。

    关于Zeroconf的更多信息,它在Android中被称为网络服务发现

    您的服务器广播该服务,android设备收听该服务:


    我可以向本地广播地址发送消息
    I?谁会发送这个消息?消息是什么?
    我们通过RESTful接口与服务器通信
    。您的服务器与此有什么关系?或者客户端是如何与服务器通信的?我不明白您想用querystring作为GET请求发送什么。请举例说明内容。客户端将使用
    DatagramSocket
    发送这样的消息,如代码片段22所示。RESTful接口与此相关,因为我们希望与服务器的所有通信都是RESTful的,如果可能的话,包括发现请求。