package com.spring.pc;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
public class USBClient {
/**
* @param args
* @throws InterruptedException
*/
public static void main(String[] args) throws InterruptedException {
try {
Runtime.getRuntime().exec("adb shell am broadcast -a NotifyServiceStop");
Thread.sleep(3000 );
Runtime.getRuntime().exec("adb forward tcp:12580 tcp:10086" );
Thread.sleep(3000 );
Runtime.getRuntime().exec("adb shell am broadcast -a NotifyServiceStart" );
Thread.sleep(3000 );
} catch (IOException e3) {
// TODO Auto-generated catch block
System.out.println("dddd");
e3.printStackTrace();
}
Socket socket = null ;
try {
InetAddress serverAddr = null ;
serverAddr = InetAddress.getByName("127.0.0.1" );
System.out.println("TCP 1111" + "C: Connecting..." );
socket = new Socket(serverAddr, 12580 );
//String str = "hi,wufenglong" ;
System.out.println("TCP 221122" + "C:RECEIVE" );
BufferedOutputStream out = new BufferedOutputStream(socket
.getOutputStream());
BufferedInputStream in = new BufferedInputStream(socket
.getInputStream());
BufferedReader br = new BufferedReader( new InputStreamReader(
System.in));
boolean flag = true ;
while (flag) {
}
} catch (UnknownHostException e1) {
System.out.println("TCP 331133" + "ERROR:" + e1.toString());
} catch (Exception e2) {
System.out.println("TCP 441144" + "ERROR:" + e2.toString());
} finally {
try {
if (socket != null ) {
socket.close();
System.out.println("socket.close()" );
}
} catch (IOException e) {
System.out.println("TCP 5555" + "ERROR:" + e.toString());
}
}
}
}
package com.spring.server;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.IBinder;
public class AndroidService extends Service {
public static final String TAG="TAG";
public static Boolean mainThreadFlag = true;
public static Boolean ioThread = true;
ServerSocket serverSocket = null;
final int SERVER_PORT = 10086;
sysBroadcastReceiver sysBR;
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
private void sysRegister() {
sysBR = new sysBroadcastReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction("android.intent.action.PACKAGE_ADDED");
filter.addDataScheme("package");
filter.addAction("android.intent.action.PACKAGE_REMOVED");
registerReceiver(sysBR, filter);
}
private class sysBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
String action = intent.getAction();
if(action.equalsIgnoreCase("android.intent.action.PACKAGE_ADDED")){
}else if(action.equalsIgnoreCase("android.intent.action.PACKAGE_REMOVED")){
}
}
}
private void doListen() {
serverSocket = null;
try {
serverSocket = new ServerSocket(SERVER_PORT);
boolean mainThreadFlag = true;
while(mainThreadFlag) {
Socket client = serverSocket.accept();
//开始读写操作
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
mainThreadFlag = false;
ioThread=false;
try {
serverSocket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
sysRegister();
new Thread() {
public void run() {
doListen();
}
}.start();
}
}
package com.spring.server;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class ServerBroadcastReceiver extends BroadcastReceiver {
private static String START_ACTION ="NotifyServiceStart";
private static String STOP_ACTION ="NotifyServiceStop";
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
String action = intent.getAction();
if(START_ACTION.equalsIgnoreCase(action)) {
context.startService(new Intent(context,AndroidService.class));
}else if(STOP_ACTION.equalsIgnoreCase(action)){
context.stopService(new Intent(context,AndroidService.class));
}
}
}