У меня есть этот код на стороне сервера:
Сторона сервера:
ServerSocket listenTransferSocket = new ServerSocket(6000);
Socket connectionTransferSocket = listenTransferSocket.accept();
DataOutputStream outTransferToClient =
new DataOutputStream(connectionTransferSocket.getOutputStream());
{
....................... (Some code)
.......................
}
outTransferToClient.write(fileInBytes,0,numOfBytes);
System.out.println("File send");
**// outTransferToClient.close();**
BufferedReader inFromClientR =
new BufferedReader(new InputStreamReader(connectionTransferSocket.getInputStream()));
Сторона клиента:
Socket fileTransferSocket = new Socket("localhost",6000);
DataInputStream in = new DataInputStream(new BufferedInputStream(
fileTransferSocket.getInputStream()));
OutputStream out = new FileOutputStream(new File("./TransferedFiles/"+fileName));
byte[] by = new byte[numOfBytes];
while ((read = in.read(by, 0, numOfBytes)) != -1) {
out.write(by,0,read);
}
DataOutputStream outToServerR =
new DataOutputStream(fileTransferSocket.getOutputStream());
System.out.println("checkC");
outToServerR.writeBytes("Transfer completed \n");
и я получаю следующее исключение, когда пытаюсь открыть BufferedReader, если закрываю это: outTransferToClient.close();
Exception in thread "main" java.net.SocketException: Socket is closed
at java.net.Socket.getInputStream(Socket.java:788)
at Server.main(Server.java:92)
если я этого не сделаю, цикл while на стороне клиента никогда не остановится.. любая помощь????