如何在java中获取本地网络上的服务器ip

时间:2018-04-04 14:18:13

标签: java

我有一个clientApp和serverApp,每个都在另一台计算机上,每台计算机都连接到本地网络(在同一个wifi上),客户端应用程序通过服务器IP地址向服务器应用程序发送消息

所以我的问题是我必须手动将服务器IP地址提供给客户端应用程序以了解该服务器的位置(知道目的地)

我想要的是让客户端应用程序自动确定或定位本地网络上的服务器IP地址,而不是手动将服务器IP地址提供给客户端应用程序

就像客户端应用程序以某种方式向该本地网络上的所有主机发送数据包(或消息),只有拥有服务器应用程序的计算机响应该消息并将服务器IP地址返回到客户端IP地址

ClientApp.java

public class ClientApp {

    public static void main(String[] args) {
        try {
            Socket s = new Socket("192.168.20.125", 6666);
            DataOutputStream dout=new DataOutputStream(s.getOutputStream());
            dout.writeUTF("hellow server\n");
            dout.flush();
            dout.close();
            s.close();
        } catch (IOException e) {
            System.out.println(e);
        }
    }
}

ServerApp.java

public class ServerApp {

    public static void main(String[] args) {
        try {
            ServerSocket ss=new ServerSocket(6666);
            Socket s=ss.accept();
            DataInputStream dis = new DataInputStream(s.getInputStream());
            String str =(String)dis.readUTF();
            System.out.print("message : "+str);
            ss.close();
        } catch (IOException e) {
            System.out.println(e);
        }
    } 
}

1 个答案:

答案 0 :(得分:0)

使用arp也可能有用:

arp -a