一、从服务端向客户端发送图片:
服务端的代码:
import java.io.DataOutputStream; import java.io.FileInputStream; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; public class Server01 { public static void main(String[] args) { try { ServerSocket server = new ServerSocket(30000); Socket socket = server.accept(); DataOutputStream dos = new DataOutputStream(socket.getOutputStream()); FileInputStream fis = new FileInputStream("C:/sunnyTest/picture/cat01.jpg"); int size = fis.available(); System.out.println("size = "+size); 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(); } } }
客户端的代码:
import com.login.R; import android.app.Activity; import android.content.Intent; 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; private ImageView imageView02; private Bitmap bmp02; private Button button02; private String uploadFile="/mnt/sdcard/qt.png"; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.image); imageView = (ImageView) findViewById(R.id.image01); Button btn = (Button) findViewById(R.id.Button01); btn.setOnClickListener(new OnClickListener() { public void onClick(View v) { Socket socket = null; try { socket = new Socket("192.168.1.203", 30000); DataInputStream dataInput = new DataInputStream(socket.getInputStream()); int size = dataInput.readInt(); byte[] data = new byte[size]; 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); //Bitmap bitmap = BitmapFactory.decodeStream(dataInput); //myHandler.obtainMessage().sendToTarget(); } catch (IOException e) { e.printStackTrace(); } finally { try { socket.close(); } catch (IOException e) { e.printStackTrace(); } } } }); } }
二、客户端向服务端发送图片的代码:
服务端:
import java.io.DataInputStream; 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 Server02 { public static void main(String[] args) { try { ServerSocket server = new ServerSocket(40000); Socket socket = server.accept(); DataInputStream dos = new DataInputStream(socket.getInputStream()); int len = dos.available(); System.out.println("len = "+len); byte[] data = new byte[len]; dos.read(data); System.out.println("data = "+data); dos.close(); socket.close(); server.close(); } catch (IOException e) { e.printStackTrace(); } } }
客户端:
imageView02 = (ImageView)findViewById(R.id.image02); button02 = (Button)findViewById(R.id.Button02); button02.setOnClickListener(new OnClickListener(){ public void onClick(View arg0) { Socket socket; try { socket = new Socket("192.168.1.203",40000); DataOutputStream out = new DataOutputStream(socket.getOutputStream()); Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.qt); imageView02.setImageBitmap(bitmap); ByteArrayOutputStream baos = new ByteArrayOutputStream(); //读取图片到ByteArrayOutputStream bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos); byte[] bytes = baos.toByteArray(); out.write(bytes); System.out.println("bytes--->"+bytes); out.close(); socket.close(); } catch (UnknownHostException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }); }
转自:http://blog.csdn.net/qingzi635533/article/details/8961180