有關android Socket編程 在兩個模擬器中實現

  轉載請註明:來自http://blog.csdn.net/soulscarrier

   1.打開兩個模擬器:

  在命令行中定位到SDk的tools下面,輸入emulator -data foo 啓動兩個模擬器。

  2.確定其中一個作爲服務器:

  需要讓android模擬器作爲服務器之前檢測兩個模擬器是否正常其命令語句:adb devices 之後在把其中一個設置爲服務器。其命令行語句爲:telnet localhost +模擬器的名稱例如:telnet localhost 5554 :中的“5554”即爲模擬器的名稱。顯示“OK”之後繼續執行一下語句:redir add tcp:8192:8191

  3.執行服務器端和客戶端代碼:

  server:

  public class server extends Activity {

  public static final String SERVERIP = "10.0.2.15";//這個地址其實沒有用到

  public static final int SERVERPORT = 8191; //注意這裏和上面重定向的配置是有關係的。

  @Override

  public void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentView(R.layout.main);

  try {

  ServerSocket serverSocket = new ServerSocket(SERVERPORT);

  while (true) {

  Socket client = serverSocket.accept();

  System.out.println("S: Receiving...\n"+client.getInetAddress());

  client.getInetAddress();

  }

  }catch(Exception e) {

  System.out.println("S: Error");

  e.printStackTrace();

  }

  }

  }

  client:

  public class client extends Activity {

  @Override

  public void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentView(R.layout.main);

  try {

  Socket socket = new Socket("10.0.2.2", 8192);//注意這裏也是和上面重定向的配置是有關係的。而且這裏的地址必須是10.0.2.2

  } catch (UnknownHostException e) {

  // TODO Auto-generated catch block

  e.printStackTrace();

  } catch (IOException e) {

  // TODO Auto-generated catch block

  e.printStackTrace();

  }

  }

  }

  注意:兩個程序的AndroidManifest.xml都必須加上下面這個權限:

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章