Android - 比较两个相同的InetAddress会失败吗?

iex*_*xus 2 java android equals inetaddress

我有一个应用程序,我正在开发多人游戏.但是我没有2部手机,所以我一直在我的电脑上运行一个单独的程序(注意:不是模拟器!),它模拟我的程序和多人游戏方面.

但是在PC上我有以下代码:

Packet input = inputQueue.take();

                if (clientAddress == input.getAddress())
                {
                    switch (input.type)
                    {
Run Code Online (Sandbox Code Playgroud)

这很好用,Packet只是一个简单的类,我写的是从Datagram包中获取信息,getAddress()返回一个InetAddress.客户端地址先前已在代码中设置.

然而,Android应用程序具有完全相同的代码,字面上的行完全相同,这个InetAddress不会等同于另一个?如果我使用getHostName()或其他东西获取2 InetAddress的字符串并进行比较,那么它就等于另一个.

我做错了什么并且通过思考我可以将这两个对象与==符号进行比较来假设一些东西?它应该是.equals()吗?我以为android使用相同的java.net代码,但可能有区别吗?

使用InetAddress确保我拥有相同地址的最佳方法是什么?

MBy*_*ByD 10

它应该是equals().在Java中,始终使用比较对象equals.==运算符比较引用,而不是内容.