Android 客户端选择响应最快的一个服务器

package com.csst.activity;
import java.io.IOException;
import com.csst.drawer.R;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.os.SystemClock;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
/**
 * Looper,MeeageQueue!
 * 
 * @author Administrator
 *
 */
public class LooperDemoActivity extends Activity {
    
    protected static int messageQueueIndexId=0;
    
    private String [] serverAdd={"www.cnblogs.com","www.iconpng.com","www.baidu.com","developers.google.com"};
        /**
     * 
     *测试ping成功的时间
     * 
     * @param addr
     * @return
     */
    public long pingSuccessTime(String addr){
     Runtime run = Runtime.getRuntime();
  
  Process proc = null;
  
  long nowtime=System.currentTimeMillis();
  
  try {
   
   String str = "ping -c 1 -i 0.2 -W 1 "+ addr;
   
   System.out.println(str);
   
   proc = run.exec(str);
   
   int result = proc.waitFor();
   
   if(result == 0) //ping 成功
   {
    long pingSuccesstime=System.currentTimeMillis()-nowtime;
    Log.e("ping",addr+pingSuccesstime+"");
    return pingSuccesstime;
   }else{
    Log.e("ping",addr+"pingSuccesstime:"+55554);
    return 55554;
   }
   
  } catch (IOException e) {
   e.printStackTrace();
  } catch (InterruptedException e) {
   e.printStackTrace();
  } finally {
   proc.destroy();
  }
  Log.e("ping",addr+"pingSuccesstime:"+55554);
  return 55554;
  
  
    }
    
    
    
    
    
    
    
    
    
    
    @Override 
    public void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 
    setContentView(R.layout.looper_demo_activity); 
    
    long timeTemp=55555;
    int  index=0;
    
    for(int i=0;i<serverAdd.length;i++){
     long time=pingSuccessTime(serverAdd[i]);
     if(time<timeTemp){
      index=i;
     }
     timeTemp=time;
    }
    
    Log.e("ping","最短"+index);
    }     
    
}
时间: 2024-08-28 04:45:34

Android 客户端选择响应最快的一个服务器的相关文章

Socket编程——怎么实现一个服务器多个客户端之间的连接

  1 package coreBookSocket; 2 3 import java.io.IOException; 4 import java.net.ServerSocket; 5 import java.net.Socket; 6 7 /* 8 * 这个方法的主要目地是为了用多线程的方法实现网络编程,让多个客户端可以同时连接到一个服务器 9 *1:准备工作和单个客户端编程类似,先建立服务器端的套接字,同时让客户端那边调用accept()方法来接受服务器端的信息 10 *2:这里面定一个w

用Jersey为Android客户端开发Restful Web Service

平时在做Android客户端的时候经常要与服务器之间通信,客户端通过服务端提供的接口获取数据,然后再展示在客户端的界面上,作为Android开发者,我们平时更多的是关注客户端的开发,而对服务端开发的关注相对较少,但是如果我们要自己一个人设计并开发一套完整的系统,我们就必须同时具备客户端和服务端的开发知识,而且我认为同时掌握客户端和服务端的开发技术还是很有用处的,不仅有助于提升我们的架构知识和能力,而且还……你懂得!身边一些做WEB开发的朋友很多都说为客户端开发接口和单纯地做WEB项目并没有很大的

【原创】轻量级即时通讯技术MobileIMSDK:Android客户端开发指南

申明:MobileIMSDK 目前为个人维护的原创开源工程,现陆续整理了一些资料,希望对需要的人有用.如需与作者交流,见文章底签名处,互相学习. MobileIMSDK开源工程的代码托管地址请进入 [email protected]:点击进入 MobileIMSDK的Android客户端SDK文档:点击进入 学习交流 讨论学习和资料区:点此进入 推荐 移动端即时通讯交流: 215891622 推荐 bug/建议发送至:[email protected] [写在前面] MobileIMSDK的An

android客户端和php服务简单交互

android客户端和php+mysql+apache搭建之间的简单交互,实现log信息存储. 实现原理就是android客户端发送请求,传给服务器log信息,服务器收到这些,连接数据库进行存储,并将存储后的状态返回给客户端. 服务器端: 先在mysql里面建一个testlog的数据库,里面有一个log_info表,记录了LogCategory,System,Executor,Action等信息. 在php的虚拟目录下新建一个php项目testlog,创建conn.php和log_deal.ph

Android客户端与PC服务器通过socket进行交互实例(转)

一直以来对Android socket通信都很模糊,今天终于研究了一个网上的例子,自己又修改了下,算是对Android socket通信有点了解了. 下面是具体的代码,说明都在注释中了.需要注意的是,只有客户端发送了信息给服务器后,服务器才能响应客户端的输入,然后返回信息给客户端,这是客户端才能读取服务器返回的信息.如果客户端和服务器都处于等待对方的信息,那样就会造成阻塞,导致ANR了. 1.服务器端代码,就是一个java程序,与android无关,运行于服务器上,即PC机上. [java] v

Android客户端与服务器交互方式-小结

最近的Android项目开发过程中一个问题困扰自己很长时间,Android客户端与服务器交互有几种方式,最常见的就是webservices和json.要在Android手机客户端与pc服务器交互,需要满足下面几种条件:跨平台.传输数据格式标准.交互方便. 为了与服务器通讯其实无非就两种协议HTTP和TCP,TCP的学习Socket,HTTP的话熟悉一下HTTP协议和相关Java API.而下面的几种方式就是从这两种协议扩展出来的:webservices soap.SSH的JSON(可参考:该链接

使用HttpURLConnection实现在android客户端和服务器之间传递对象

一般情况下,客户端和服务端的数据交互都是使用json和XML,相比于XML,json更加轻量级,并且省流量,但是,无论我们用json还是用xml,都需要我们先将数据封装成json字符串或者是一个xml字符串然后传输,那么有没有可能我们直接在android客户端上传递一个Object给服务器端呢?答案是肯定的. 我们看一个简单的App注册页面,如下图: 当我们点击注册按钮的时候,将用户的注册信息通过一个Object对象传递到服务器,好,下来我们看看怎么样来传递对象: 首先我们要把用户的注册信息封装

Android客户端通过Socket连接服务器

Android客户端通过Socket连接服务器. Android互联网项目中,绝大部分都有连接远程服务器的需求,连接的方式有多种,可以是TCP的方式,当然也可以通过Socket的方式. 相对于TCP的方式,Socket的方式略显的较为原始,对于客户端来说,复杂度反而比TCP的方式还要高一些,毕竟TCP的连接有现成的框架可以使用, 比如Spring等. 而使用socket方式这些工作完全需要客户端来做,也增加了客户端的工作量,不过凡事有利弊,通过socket的方式,流量上 相对于TCP等的方式更加

Android客户端与云服务器进行网络通信

多写技术文档,多写技术文档,多写技术文档,重要的事情说三遍...... ------------------------------------------------------------------------------------------------------------------- 功能需求:Android客户端解析和显示云服务器返回的xml文件. 思路:涉及到Android端应用和Java ee端web应用的编码实现. 示例:Android客户端获取腾讯云服务器上的视频资讯