我写了一个app作为websocket服务器(使用TooTallNate库),以及一些充当websocket客户端的javascript。我设法从浏览器访问连接的Android设备的号码和联系人组,并可以通过在计算机上键入短信来写短信。问题是到目前为止我需要将Android设备的ip硬编码到客户端的javascript中。
这就是我将Web客户端连接到android服务器的方式。
var ws = new WebSocket("ws://192.xxx.x.xx:8080/");
我希望用户可以输入网络客户端的链接,然后连接到Android设备,而不知道它的IP。
如何以编程方式检索服务器的IP?
编辑:
到目前为止,对于android套接字服务器,我使用的是此方法返回的ip
private 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()) {
return inetAddress.getHostAddress();
}
}
}
} catch (SocketException e) {
Log.e(TAG, e.getMessage(), e);
}
return ip;
}
以后我会像这样启动服务器
final String host = getIpAddress();
final int port = 8080;
new Thread(new Runnable() {
@Override
public void run() {
SimpleServer server = new SimpleServer(MainActivity.this, new InetSocketAddress(host, port));
MainActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
info.setText("I'm waiting here: "
+ port);
}
});
server.run();
}
}).start();
当我用javascript客户端打开浏览器时,我使用上面java方法返回的相同ip。
答案 0 :(得分:0)
那么,使用HTML和JS的http服务器在哪里?或者它只是您计算机上的HTML页面?
window.location
获取服务器的IP并输入new WebSocket();
功能