Android判断服务器是否开启
Android判断服务器是否开启的简单实现,代码如下:
一:java代码:
http://blog.csdn.net/qy_qingyan/article/details/9788503
- package com.net.main;
- import java.io.IOException;
- import org.apache.http.HttpResponse;
- import org.apache.http.client.ClientProtocolException;
- import org.apache.http.client.HttpClient;
- import org.apache.http.client.methods.HttpGet;
- import org.apache.http.impl.client.DefaultHttpClient;
- import org.apache.http.params.BasicHttpParams;
- import org.apache.http.params.HttpConnectionParams;
- import org.apache.http.params.HttpParams;
- import android.annotation.SuppressLint;
- import android.app.Activity;
- import android.os.Bundle;
- import android.os.Handler;
- import android.os.Message;
- import android.view.Menu;
- import android.view.View;
- import android.widget.EditText;
- public class MainActivity extends Activity {
- private EditText etAddress;
- private Handler handle;
- private String address;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- etAddress=(EditText) findViewById(R.id.editText1);
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.main, menu);
- return true;
- }
- @SuppressLint("HandlerLeak")
- public void lianJie(View view){
- address=etAddress.getText().toString();
- handle=new Handler(){
- @Override
- public void handleMessage(Message msg) {
- // TODO Auto-generated method stub
- if(msg.what==1){
- System.out.println("执行完毕!");
- }
- }
- };
- Thread thread=new Thread(new Runnable() {
- @Override
- public void run() {
- // TODO Auto-generated method stub
- String str=NetIsOnLine(address);
- System.out.println(str);
- Message message=new Message();
- message.what=1;
- handle.sendMessage(message);
- }
- });
- thread.start();
- }
- /**
- * 判断网络服务器是否开启
- * @param path 网路服务器地址
- * @return
- * 网路服务器开启
- * 网络服务器未开启
- */
- public String NetIsOnLine(String path){
- HttpParams httpParams = new BasicHttpParams();
- HttpConnectionParams.setConnectionTimeout(httpParams, 10000);
- HttpConnectionParams.setSoTimeout(httpParams, 10000);
- HttpClient client = new DefaultHttpClient(httpParams);
- HttpGet get = new HttpGet(path);
- HttpResponse response = null;
- try {
- response = client.execute(get);
- } catch (ClientProtocolException e) {
- // TODO Auto-generated catch block
- return "网路服务器未开启(客户端端口异常)";
- } catch (IOException e) {
- // TODO Auto-generated catch block
- return "网路服务器未开启(IO异常)";
- }
- if(response.getStatusLine().getStatusCode()==200){
- return "网路服务器开启!";
- }
- return "其它";
- }
- }
二:布局文件:
- <?xml version="1.0" encoding="utf-8"?>
- <resources>
- <string name="app_name">Net</string>
- <string name="action_settings">Settings</string>
- <string name="hello_world">判断服务器是否开启</string>
- <string name="service_address">服务器地址</string>
- <string name="bt_lianjie">连接</string>
- </resources>
三:清单文件
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.net.main"
- android:versionCode="1"
- android:versionName="1.0" >
- <uses-sdk
- android:minSdkVersion="8"
- android:targetSdkVersion="17" />
- <!-- 使用网络的权限 -->
- <uses-permission android:name="android.permission.INTERNET" />
- <application
- android:allowBackup="true"
- android:icon="@drawable/ic_launcher"
- android:label="@string/app_name"
- android:theme="@style/AppTheme" >
- <activity
- android:name="com.net.main.MainActivity"
- android:label="@string/app_name" >
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- </application>
- </manifest>