首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

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

2012-11-19 
PC客户端与Android实现图片传送PC服务端,用于发送图片import java.io.DataOutputStreamimport java.io.Fi

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. */@Overridepublic 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() {@Overridepublic 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);};};}

热点排行