当前位置: 代码迷 >> Android >> PC客户端与Android兑现图片传送
  详细解决方案

PC客户端与Android兑现图片传送

热度:98   发布时间:2016-05-01 13:00:30.0
PC客户端与Android实现图片传送
PC服务端,用于发送图片
import java.io.DataOutputStream;import java.io.FileInputStream;import java.io.IOException;import java.net.InetSocketAddress;import java.net.ServerSocket;import java.net.Socket;public class Server {	public static void main(String[] args) {		try {			ServerSocket server = new ServerSocket();			server.bind(new InetSocketAddress(33336));			Socket socket = server.accept();			//socket.getInetAddress();			DataOutputStream dos = new DataOutputStream(socket.getOutputStream());			FileInputStream fis = new FileInputStream("E:/workspace/android/Server/test.png");			int size = fis.available();			byte[] data = new byte[size];			fis.read(data);			dos.writeInt(size);			dos.write(data);			dos.flush();			dos.close();			fis.close();			socket.close();			server.close();		} catch (IOException e) {			e.printStackTrace();		}	}}


Android客户端用于接收图片并展示
package com.tw;import java.io.ByteArrayOutputStream;import java.io.DataInputStream;import java.io.IOException;import java.net.Socket;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.Bitmap.CompressFormat;import android.graphics.BitmapFactory;import android.os.Bundle;import android.os.Handler;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.ImageView;public class TestActivity extends Activity {	private ImageView imageView = null;	private Bitmap bmp = null;		/** Called when the activity is first created. */	@Override	public void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.main);		imageView = (ImageView) findViewById(R.id.imageView1);		Button btn = (Button) findViewById(R.id.button1);		btn.setOnClickListener(new OnClickListener() {			public void onClick(View v) {				Thread t = new Thread() {					@Override					public void run() {						super.run();						Socket socket = null;						try {							socket = new Socket("192.168.102.67", 33336);							DataInputStream dataInput = new DataInputStream(									socket.getInputStream());							int size = dataInput.readInt();							byte[] data = new byte[size];							// dataInput.readFully(data);							int len = 0;							while (len < size) {								len += dataInput.read(data, len, size - len);							}							ByteArrayOutputStream outPut = new ByteArrayOutputStream();							bmp = BitmapFactory.decodeByteArray(data, 0,									data.length);							bmp.compress(CompressFormat.PNG, 100, outPut);							//imageView.setImageBitmap(bmp);							myHandler.obtainMessage().sendToTarget();						} catch (IOException e) {							e.printStackTrace();						} finally {							try {								socket.close();							} catch (IOException e) {								e.printStackTrace();							}						}					}				};				t.start();			}		});	}		private Handler myHandler = new Handler(){		public void handleMessage(android.os.Message msg) {			imageView.setImageBitmap(bmp);		};	};}
  相关解决方案