Android UDP服务器没有';我不接受外界的电话

Android UDP服务器没有';我不接受外界的电话,android,Android,我已经在我的Android设备上实现了简单的udp服务器。(sdk 1.5) 当我在手机上运行本地客户机时,它工作正常,通过它向我的服务器发送触发器 但是,当我尝试从外部服务器获取udp呼叫到我的手机时,它不起作用。 已经确保外部服务器没有被防火墙阻止,并且它正在将udp触发器发送到我的手机正在监听的正确端口 我在手机上使用了natstat,检查手机是否真的在监听它的本地ip和我设置的端口 这是我的服务器代码:(在设备上) 正如我所说的,当我尝试使用本地客户端(独立线程)发送udp触发器时,它工

我已经在我的Android设备上实现了简单的udp服务器。(sdk 1.5) 当我在手机上运行本地客户机时,它工作正常,通过它向我的服务器发送触发器

但是,当我尝试从外部服务器获取udp呼叫到我的手机时,它不起作用。 已经确保外部服务器没有被防火墙阻止,并且它正在将udp触发器发送到我的手机正在监听的正确端口

我在手机上使用了natstat,检查手机是否真的在监听它的本地ip和我设置的端口

这是我的服务器代码:(在设备上)

正如我所说的,当我尝试使用本地客户端(独立线程)发送udp触发器时,它工作得很好,但是当我使用这个客户端实现并将其放在外部真正的服务器上时, UDP发送后,手机不响应

有什么想法吗

谢谢


ray。

我猜,当您调用
InetAddress.getByName(“localhost”)
时,您得到的是环回地址(127.0.0.1)

实际上,您要做的是将套接字绑定到INADDR\u ANY,这显然可以通过创建
DatagramSocket
来实现,如下所示:

socket = new DatagramSocket(SERVERPORT);

猜测一下,我假设当您调用
InetAddress.getByName(“localhost”)
时,您得到的是环回地址(127.0.0.1)

实际上,您要做的是将套接字绑定到INADDR\u ANY,这显然可以通过创建
DatagramSocket
来实现,如下所示:

socket = new DatagramSocket(SERVERPORT);

谢谢它工作了,但仍然无法理解你所说的INADDR\u ANY是什么意思?INADDR\u ANY是IPv4通配符地址,将套接字绑定到INADDR\u ANY相当于绑定到系统的所有地址。谢谢!它起作用了,但仍然无法理解你所说的INADDR\u ANY是什么意思?INADDR\u ANY是IPv4通配符地址,将套接字绑定到INADDR\u ANY相当于绑定到系统的所有地址。