Я должен сделать передачу файла, в моем случае PDF, через сокет в Java для моей домашней работы. Обычно я запрашивал текст и возвращал текст, но на этот раз я должен отправить файл через сокет. В ходе моего исследования я обнаружил, что передача файлов осуществляется с помощью потоков Fileinput (output). Моя проблема в том, что запрос к серверу должен выглядеть примерно так:
File file = new File(pathToFile);
Pirntwriter out = new PrintWriter(Socket s.getOutputStream());
Outputstream outFile = s.getOutputStream();
int count
out.write("user file\r\n"
+ file.getName()+"\r\n"
+ file.length()+"\r\n"
+ "body\r\n");
// send file but im not sure how
byte[] buffer = new buffer with size of file.length()
while ((count = in.read(buffer)) > 0){
outFile.write(buffer, 0, count);
}
out.flush
outFile.flush
К сожалению, это не работает для меня. Таким образом, сервер считает запросы как два разных выхода. Есть ли способ объединить оба выходных потока или записать запрос в один выходной поток?