我想每 3 分钟向服务器发送一个字符串。我正在使用以下代码将数据从 android 手机发送到服务器:
String stringDatatoSend="Hii server";
HttpEntity entity;
HttpClient client = new DefaultHttpClient();
String url ="http://some IP/android/insert.php";
HttpPost request = new HttpPost(url);
StringEntity se = new StringEntity(stringDatatoSend);
se.setContentEncoding("UTF-8");
se.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
entity = se;
request.setEntity(entity);
HttpResponse response = client.execute(request);
entity = response.getEntity();
但是,如果服务器关闭,数据就会丢失,因为无论是否有任何确认都会发送数据。如何
在发送数据之前检查服务器是否处于活动状态以避免数据丢失。我尝试了以下代码,但它总是返回 false。
public boolean isConnectedToServer() {
try {
if(InetAddress.getByName("http://some IP/android/insert.php").isReachable(50000)) {
return true;
} else {
return false;
}
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
return false;
} catch (IOException e) {
// TODO Auto-generated catch block
return false;
}
}
我也有这两个选项:
netAddress address = InetAddress.getByName(HOST_NAME);
boolean reachable = address.isReachable(timeout);
并通过使用运行时:
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec("ping www.google.com");
主机名 ip 或地址应该是什么。