Как отправить изображение с сервера java socket на навигатор без повреждения? - PullRequest
0 голосов
/ 08 апреля 2020

Я пытаюсь кодировать сервер сокетов java для отправки изображения с этого сервера навигатору (на стороне клиента). Но когда я отправляю изображение, файл считается поврежденным (отображение изображения с символами).

                DataOutputStream dout = new DataOutputStream(connectS.getOutputStream());
                String file="image.jpg";
                File filename = new File(file);
                FileInputStream fin = new FileInputStream(filename);  
                //dout.writeUTF(file);
                System.out.println("Sending image...");
                int size=(int) filename.length();
                byte[] readData = new byte[size]; 
                fin.read(readData);
                dout.writeInt(size);
                dout.flush();
                dout.write(readData,0,size);
                /*for(int i=0;i<readData.length;i++) {
                     dout.write(readData, 0, i);
                }*/
                dout.flush();

Вот как я запускаю программу

    ServerSocket ss=new ServerSocket(8080);
    Socket connectS=ss.accept();
    BufferedReader in=new BufferedReader(new InputStreamReader(connectS.getInputStream()));

Спасибо за вашу помощь! !!

1 Ответ

0 голосов
/ 09 апреля 2020

Я решил проблему. Сначала удалите dout.readInt (); Затем откройте край Microsoft; (Mozilla показывает изображение, но, кажется, есть проблема с кодировкой, это мое мнение, может быть, не так);

...