android socket 从客户端到服务器传图片的奇葩现象,求大神指导下,该怎么处理

android socket 从客户端到服务器传图片的奇葩现象,求大神指导下
android客户端代码:
public class MainActivity extends Activity {

    /**
     * Called when the activity is first created.
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button mybtn = (Button) findViewById(R.id.mybtn);


        mybtn.setOnClickListener(new OnClickListener() {
            public void onClick(View view) {
                Socket socket;
                try {
                    socket = new Socket("192.168.1.102", 40000);
                    DataOutputStream out = new DataOutputStream(socket.getOutputStream());
                    Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
                    ImageView myview = (ImageView) findViewById(R.id.myview);
                    myview.setImageBitmap(bitmap);
                    ByteArrayOutputStream baos = new ByteArrayOutputStream();
                    //读取图片到ByteArrayOutputStream                       
                    bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
                    
                    byte[] bytes = baos.toByteArray();
                   
                     Log.i("Client02:", bytes.length+"");
                    out.write(bytes);

                   
                    out.close();
                    socket.close();


                } catch (UnknownHostException ex) {
                    Log.i("Client02:", "192.168.1.102 is unknow host!!");
                } catch (IOException ex) {
                    Log.i("Client02:", "socket create failure!!!!userperssion。。。");
                }
            }
        });

    }

android服务器端代码:
public class Server02 implements Runnable {

    @Override
    public void run() {
        try {
            ServerSocket server = new ServerSocket(40000);
            System.out.println("Server02 is ready to receive.....");
            Socket socket = server.accept();
            //通过输入流获取图片数据 
            DataInputStream dis = new DataInputStream(socket.getInputStream());
            int len = dis.available();