通过TCP协议发送和接收图像

时间:2017-11-17 15:13:57

标签: java android image tcp client-server

我正在编写服务器 - 客户端模型,以便将图像从服务器发送到客户端

在服务器端:

public void run() {
        int maxClientsCount = this.maxClientsCount;
        clientThread[] threads = this.threads;

        try {
          //Send Image test

          byte[] array = Files.readAllBytes(new File("D:\\Sample.png").toPath());
          int size=array.length;
          System.out.println(size);

          //SendImage
          DataOutputStream outToClient = new DataOutputStream(clientSocket.getOutputStream());        
          outToClient.write(array);

          clientSocket.close();
        } catch (IOException e) {
        }
      }

和客户端:

public void run() {

            try {
                InetAddress serverAddr = InetAddress.getByName(Ip);

                socket = new Socket(serverAddr, SERVERPORT);


                        input = socket.getInputStream();
                        byte[] buffer = ByteStreams.toByteArray(input);
                        Log.i("Image", String.valueOf(buffer.length));

                        Bitmap bitmap = BitmapFactory.decodeByteArray(buffer, 0, buffer.length);

                        image.setImageBitmap((Bitmap.createScaledBitmap(bitmap, 120, 120, false)));
                //close
                socket.close();




            } catch (UnknownHostException e1) {
                e1.printStackTrace();
            } catch (IOException e1) {
                e1.printStackTrace();
            }



            }

问题在于,当我运行应用程序时,虽然应用程序显示从服务器接收的照片,但错误:应用已停止发生。

这是我从logcat获取的错误: enter image description here

是的,我可以修复上述错误,现在应用程序返回上一个错误:

11-18 08:09:04.625 15964-15964/? I/art: Not late-enabling -Xcheck:jni (already on)
11-18 08:09:04.741 15964-15964/com.example.user.assignment W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg  --debuggable --instruction-set=x86 --instruction-set-features=smp,ssse3,-sse4.1,-sse4.2,-avx,-avx2 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=x86 --instruction-set-features=default --dex-file=/data/app/com.example.user.assignment-1/split_lib_dependencies_apk.apk --oat-file=/data/dalvik-cache/x86/data@app@com.example.user.assignment-1@split_lib_dependencies_apk.apk@classes.dex) because non-0 exit status
11-18 08:09:05.117 15964-15964/com.example.user.assignment W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg  --debuggable --instruction-set=x86 --instruction-set-features=smp,ssse3,-sse4.1,-sse4.2,-avx,-avx2 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=x86 --instruction-set-features=default --dex-file=/data/app/com.example.user.assignment-1/split_lib_slice_0_apk.apk --oat-file=/data/dalvik-cache/x86/data@app@com.example.user.assignment-1@split_lib_slice_0_apk.apk@classes.dex) because non-0 exit status
11-18 08:09:05.143 15964-15964/com.example.user.assignment W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg  --debuggable --instruction-set=x86 --instruction-set-features=smp,ssse3,-sse4.1,-sse4.2,-avx,-avx2 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=x86 --instruction-set-features=default --dex-file=/data/app/com.example.user.assignment-1/split_lib_slice_1_apk.apk --oat-file=/data/dalvik-cache/x86/data@app@com.example.user.assignment-1@split_lib_slice_1_apk.apk@classes.dex) because non-0 exit status
11-18 08:09:05.181 15964-15964/com.example.user.assignment W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg  --debuggable --instruction-set=x86 --instruction-set-features=smp,ssse3,-sse4.1,-sse4.2,-avx,-avx2 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=x86 --instruction-set-features=default --dex-file=/data/app/com.example.user.assignment-1/split_lib_slice_2_apk.apk --oat-file=/data/dalvik-cache/x86/data@app@com.example.user.assignment-1@split_lib_slice_2_apk.apk@classes.dex) because non-0 exit status
11-18 08:09:05.208 15964-15964/com.example.user.assignment W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg  --debuggable --instruction-set=x86 --instruction-set-features=smp,ssse3,-sse4.1,-sse4.2,-avx,-avx2 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=x86 --instruction-set-features=default --dex-file=/data/app/com.example.user.assignment-1/split_lib_slice_3_apk.apk --oat-file=/data/dalvik-cache/x86/data@app@com.example.user.assignment-1@split_lib_slice_3_apk.apk@classes.dex) because non-0 exit status
11-18 08:09:05.244 15964-15964/com.example.user.assignment W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg  --debuggable --instruction-set=x86 --instruction-set-features=smp,ssse3,-sse4.1,-sse4.2,-avx,-avx2 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=x86 --instruction-set-features=default --dex-file=/data/app/com.example.user.assignment-1/split_lib_slice_4_apk.apk --oat-file=/data/dalvik-cache/x86/data@app@com.example.user.assignment-1@split_lib_slice_4_apk.apk@classes.dex) because non-0 exit status
11-18 08:09:05.263 15964-15964/com.example.user.assignment W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg  --debuggable --instruction-set=x86 --instruction-set-features=smp,ssse3,-sse4.1,-sse4.2,-avx,-avx2 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=x86 --instruction-set-features=default --dex-file=/data/app/com.example.user.assignment-1/split_lib_slice_5_apk.apk --oat-file=/data/dalvik-cache/x86/data@app@com.example.user.assignment-1@split_lib_slice_5_apk.apk@classes.dex) because non-0 exit status
11-18 08:09:05.291 15964-15964/com.example.user.assignment W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg  --debuggable --instruction-set=x86 --instruction-set-features=smp,ssse3,-sse4.1,-sse4.2,-avx,-avx2 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=x86 --instruction-set-features=default --dex-file=/data/app/com.example.user.assignment-1/split_lib_slice_6_apk.apk --oat-file=/data/dalvik-cache/x86/data@app@com.example.user.assignment-1@split_lib_slice_6_apk.apk@classes.dex) because non-0 exit status
11-18 08:09:05.307 15964-15964/com.example.user.assignment W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg  --debuggable --instruction-set=x86 --instruction-set-features=smp,ssse3,-sse4.1,-sse4.2,-avx,-avx2 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=x86 --instruction-set-features=default --dex-file=/data/app/com.example.user.assignment-1/split_lib_slice_7_apk.apk --oat-file=/data/dalvik-cache/x86/data@app@com.example.user.assignment-1@split_lib_slice_7_apk.apk@classes.dex) because non-0 exit status
11-18 08:09:05.323 15964-15964/com.example.user.assignment W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg  --debuggable --instruction-set=x86 --instruction-set-features=smp,ssse3,-sse4.1,-sse4.2,-avx,-avx2 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=x86 --instruction-set-features=default --dex-file=/data/app/com.example.user.assignment-1/split_lib_slice_8_apk.apk --oat-file=/data/dalvik-cache/x86/data@app@com.example.user.assignment-1@split_lib_slice_8_apk.apk@classes.dex) because non-0 exit status
11-18 08:09:05.338 15964-15964/com.example.user.assignment W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg  --debuggable --instruction-set=x86 --instruction-set-features=smp,ssse3,-sse4.1,-sse4.2,-avx,-avx2 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=x86 --instruction-set-features=default --dex-file=/data/app/com.example.user.assignment-1/split_lib_slice_9_apk.apk --oat-file=/data/dalvik-cache/x86/data@app@com.example.user.assignment-1@split_lib_slice_9_apk.apk@classes.dex) because non-0 exit status
11-18 08:09:05.339 15964-15964/com.example.user.assignment W/System: ClassLoader referenced unknown path: /data/app/com.example.user.assignment-1/lib/x86
11-18 08:09:05.341 15964-15964/com.example.user.assignment I/InstantRun: starting instant run server: is main process
11-18 08:09:05.388 15964-15964/com.example.user.assignment D/Image Size:: 37858
11-18 08:09:15.624 15964-15964/com.example.user.assignment W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
11-18 08:09:15.948 15964-15964/com.example.user.assignment W/art: Before Android 4.1, method int android.support.v7.widget.ListViewCompat.lookForSelectablePosition(int, boolean) would have incorrectly overridden the package-private method in android.widget.ListView
11-18 08:09:23.791 15964-16117/com.example.user.assignment I/System.out: FROM SERVER:��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
11-18 08:09:24.197 15964-16122/com.example.user.assignment I/Image: 39
11-18 08:09:24.197 15964-16122/com.example.user.assignment D/skia: --- SkImageDecoder::Factory returned null
11-18 08:09:24.345 15964-15964/com.example.user.assignment D/AndroidRuntime: Shutting down VM
11-18 08:09:24.345 15964-15964/com.example.user.assignment E/AndroidRuntime: FATAL EXCEPTION: main
                                                                             Process: com.example.user.assignment, PID: 15964
                                                                             java.lang.NullPointerException: Attempt to invoke virtual method 'int android.graphics.Bitmap.getWidth()' on a null object reference
                                                                                 at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:610)
                                                                                 at com.example.user.assignment.SendResult$ClientThread$1.run(SendResult.java:64)
                                                                                 at android.os.Handler.handleCallback(Handler.java:739)
                                                                                 at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                                 at android.os.Looper.loop(Looper.java:148)
                                                                                 at android.app.ActivityThread.main(ActivityThread.java:5417)
                                                                                 at java.lang.reflect.Method.invoke(Native Method)
                                                                                 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                                                 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

当我尝试保存图像而不是在屏幕上显示图像时,image.jpg不会显示任何内容。也许我在接收图像或将数据转换为字节数组时遇到问题?

0 个答案:

没有答案