服务器端代码如下:
- view plaincopy to clipboardprint?
- import java.io.IOException;
- import java.io.ObjectOutputStream;
- import java.net.Socket;
- import java.net.UnknownHostException;
- import java.util.Scanner;
- public class Server {
- public static final String TAG = "server";
- public static int PC_LOCAL_PORT = 22222;
- public static int PHONE_PORT = 22222;
- public static String ADB_PATH = "adb.exe";
- /**
- * @param args
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- YingyonghuiHubServer.execAdb();
- }
- public static void execAdb() {
- // run the adb bridge
- try {
- Process p = Runtime.getRuntime().exec(
- ADB_PATH + " forward tcp:" + PC_LOCAL_PORT + " tcp:"
- + String.valueOf(PHONE_PORT));
- Scanner sc = new Scanner(p.getErrorStream());
- // If there is some output, it failed to start adb
- if (sc.hasNext()) {
- while (sc.hasNext())
- System.out.println(sc.next());
- System.err.println("Cannot start the Android debug bridge");
- return;
- }
- initializeConnection();
- } catch (Exception e) {
- System.err.println(e.toString());
- }
- }
- static Socket socket;
- public static void initializeConnection() {
- // Create socket connection
- try {
- socket = new Socket("localhost", PC_LOCAL_PORT);
- ObjectOutputStream oos = new ObjectOutputStream(
- socket.getOutputStream());
- oos.writeObject("lalala");
- oos.close();
- socket.close();
- } catch (UnknownHostException e) {
- System.err.println("Socket connection problem (Unknown host)"
- + e.getStackTrace());
- e.printStackTrace();
- } catch (IOException e) {
- System.err.println("Could not initialize I/O on socket");
- e.printStackTrace();
- }
- }
- }
- view plaincopy to clipboardprint?
- import java.io.IOException;
- import java.io.ObjectInputStream;
- import java.net.ServerSocket;
- import java.net.Socket;
- import android.app.Activity;
- import android.content.Context;
- import android.os.AsyncTask;
- import android.os.Bundle;
- import android.util.Log;
- import android.widget.TextView;
- import android.widget.Toast;
- public class Client extends Activity {
- public static final String TAG = "client";
- public static int PHONE_PORT = 22222;
- Context mContext = null;
- TextView textView = null;
- ServerSocket server = null;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- this.mContext = this;
- this.textView = (TextView) this.findViewById(R.id.textView1);
- try {
- server = new ServerSocket(PHONE_PORT);
- } catch (IOException e) {
- e.printStackTrace();
- return;
- }
- new RepackTestTask().execute();
- }
- private class RepackTestTask extends AsyncTask {
- @Override
- protected Object doInBackground(Object... params) {
- Socket client = null;
- // initialize server socket
- while (true) {
- try {
- // attempt to accept a connection
- client = server.accept();
- Log.d(TAG, "Get a connection from "
- + client.getRemoteSocketAddress().toString());
- ObjectInputStream ois = new ObjectInputStream(
- client.getInputStream());
- String somewords = (String) ois.readObject();
- Log.d(TAG, "Get some words" + somewords);
- this.publishProgress(somewords);
- client.close();
- } catch (IOException e) {
- Log.e(TAG, "" + e);
- } catch (ClassNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
- @Override
- protected void onProgressUpdate(Object... values) {
- super.onProgressUpdate(values);
- Toast.makeText(mContext, values[0].toString(), Toast.LENGTH_LONG)
- .show();
- }
- }
- }