Java.net.SocketException: сброс соединения по одноранговому узлу: ошибка записи сокета при обслуживании файлаJAVA

Программисты JAVA общаются здесь
Anonymous
Java.net.SocketException: сброс соединения по одноранговому узлу: ошибка записи сокета при обслуживании файла

Сообщение Anonymous »

Я пытаюсь реализовать HTTP-сервер с использованием сокетов. Если клиент (например, браузер) запрашивает каталог, сервер отображает список доступных файлов. Проблема возникает, когда клиент запрашивает файл. Я получаю следующую ошибку:

Код: Выделить всё

java.net.SocketException: Connection reset by peer: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113)
at java.net.SocketOutputStream.write(SocketOutputStream.java:159)
at cf.charly1811.java.web.RequestHandler.writeFile(RequestHandler.java:152)
at cf.charly1811.java.web.RequestHandler.processRequest(RequestHandler.java:139)
at cf.charly1811.java.web.RequestHandler.handleRequest(RequestHandler.java:110)
at cf.charly1811.java.web.RequestHandler.run(RequestHandler.java:86)
at java.lang.Thread.run(Thread.java:745)
Трассировка стека показывает, что проблема связана с методами writeFile():

Код: Выделить всё

private void writeFile(File request) throws IOException
{
InputStream byteReader = new BufferedInputStream(new FileInputStream(request));
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = byteReader.read(buffer)) != -1)
{
outputStream.write(buffer, 0, bytesRead);
}
byteReader.close();
}
Но я не могу понять, в чем дело.
Можете ли вы мне помочь?

Вернуться в «JAVA»