我正在开发一个套接字应用程序。
背景:
我尝试过的:
使用以下方法获得服务器ip地址,并给出ip地址:
public String getIpAddress() {
String ip = "";
try {
Enumeration<NetworkInterface> enumNetworkInterfaces = NetworkInterface
.getNetworkInterfaces();
while (enumNetworkInterfaces.hasMoreElements()) {
NetworkInterface networkInterface = enumNetworkInterfaces
.nextElement();
Enumeration<InetAddress> enumInetAddress = networkInterface
.getInetAddresses();
while (enumInetAddress.hasMoreElements()) {
InetAddress inetAddress = enumInetAddress.nextElement();
if (inetAddress.isSiteLocalAddress()) {
ip += "Server running at : "
+ inetAddress.getHostAddress();
}
}
}
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
ip += "Something Wrong! " + e.toString() + "\n";
}
text.setText(ip);
return ip;
}我使用的是静态端口8080,这可能是个问题,如果是的话,请建议我一个选项。
我在客户端使用这一行进行连接,但是soket对象在不同的网络上返回null:
InetAddress serverAddr = InetAddress.getByName(SERVER_IP);
socket = new Socket(serverAddr, SERVERPORT);因此,请建议我应该使用什么来在不同的真正的android设备上进行通信,不同的网络应用程序完美地运行在同一个网络上。
发布于 2016-06-29 11:29:57
如果您连接到P2P连接,则可以使用此技术。
否则,您可以获得两个客户端都可以访问的在线服务器,并且可以使用它在两个客户端之间转发消息。是一个很好的选择,您可以在一个带有公共IP的T2微型机器上获得一年的免费试用。
https://stackoverflow.com/questions/38008802
复制相似问题