客户端(pc端): |
-
import java.io.BufferedInputStream;
-
import java.io.BufferedOutputStream;
-
import java.io.BufferedReader;
-
import java.io.ByteArrayOutputStream;
-
import java.io.IOException;
-
import java.io.InputStream;
-
import java.io.InputStreamReader;
-
import java.net.InetAddress;
-
import java.net.Socket;
-
import java.net.UnknownHostException;
-
-
-
public class testPcClient {
-
/**
-
* @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) {
-
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) {
-
System.out.print("请输入1~6的数字,退出输入exit:");
-
String strWord = br.readLine();// 从控制台输入1~6
-
if (strWord.equals("1")) {
-
out.write("1".getBytes());
-
out.flush();
-
System.out.println("1 finish sending the data");
-
String strFormsocket = readFromSocket(in);
-
System.out.println("the data sent by server is:/r/n"+ strFormsocket);
-
System.out.println("=============================================");
-
} else if (strWord.equals("2")) {
-
out.write("2".getBytes());
-
out.flush();
-
System.out.println("2 finish sending the data");
-
String strFormsocket = readFromSocket(in);
-
System.out.println("the data sent by server is:/r/n"+ strFormsocket);
-
System.out.println("=============================================");
-
} else if (strWord.equals("3")) {
-
out.write("3".getBytes());
-
out.flush();
-
System.out.println("3 finish sending the data");
-
String strFormsocket = readFromSocket(in);
-
System.out.println("the data sent by server is:/r/n" + strFormsocket);
-
System.out.println("=============================================");
-
} else if (strWord.equals("4")) {
-
/* 发送命令 */
-
out.write("4".getBytes());
-
out.flush();
-
System.out.println("send file finish sending the CMD:");
-
/* 服务器反馈:准备接收 */
-
String strFormsocket = readFromSocket(in);
-
System.out.println("service ready receice data:UPDATE_CONTACTS:"+ strFormsocket);
-
byte[] filebytes = FileHelper.readFile("R0013340.JPG");
-
System.out.println("file size=" + filebytes.length);
-
/* 将整数转成4字节byte数组 */
-
byte[] filelength = new byte[4];
-
filelength = tools.intToByte(filebytes.length);
-
/* 将.apk字符串转成4字节byte数组 */
-
byte[] fileformat = null;
-
fileformat = ".apk".getBytes();
-
System.out.println("fileformat length=" + fileformat.length);
-
/* 字节流中前4字节为文件长度,4字节文件格式,以后是文件流 */
-
/* 注意如果write里的byte[]超过socket的缓存,系统自动分包写过去,所以对方要循环写完 */
-
out.write(filelength);
-
out.flush();
-
String strok1 = readFromSocket(in);
-
System.out.println("service receive filelength :" + strok1);
-
// out.write(fileformat);
-
// out.flush();
-
// String strok2 = readFromSocket(in);
-
// System.out.println("service receive fileformat :" +
-
// strok2);
-
System.out.println("write data to android");
-
out.write(filebytes);
-
out.flush();
-
System.out.println("*********");
-
/* 服务器反馈:接收成功 */
-
String strread = readFromSocket(in);
-
System.out.println(" send data success:" + strread);
-
System.out.println("=============================================");
-
} else if (strWord.equalsIgnoreCase("EXIT")) {
-
out.write("EXIT".getBytes());
-
out.flush();
-
System.out.println("EXIT finish sending the data");
-
String strFormsocket = readFromSocket(in);
-
System.out.println("the data sent by server is:/r/n"+ strFormsocket);
-
flag = false;
-
System.out.println("=============================================");
-
}
-
}
-
} 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());
-
}
-
}
-
}
-
-
-
/* 从InputStream流中读数据 */
-
public static String readFromSocket(InputStream in) {
-
int MAX_BUFFER_BYTES = 4000;
-
String msg = "";
-
byte[] tempbuffer = new byte[MAX_BUFFER_BYTES];
-
try {
-
int numReadedBytes = in.read(tempbuffer, 0, tempbuffer.length);
-
msg = new String(tempbuffer, 0, numReadedBytes, "utf-8");
-
tempbuffer = null;
-
} catch (Exception e) {
-
e.printStackTrace();
-
}
-
// Log.v(Service139.TAG, "msg=" + msg);
-
return msg;
-
}
-
-
- }