I'm trying to send file using Sockets, but when I receive the file, I can't store it. Debugger shows, that code stops at
bytesRead = is.read(mybytearray, current, (mybytearray.length - current));
and nothing happens.
bytesRead = is.read(mybytearray, 0, mybytearray.length); - is equal 17
public static void main(String[] args) throws IOException {
FileOutputStream fileOutputStream = null;
BufferedOutputStream bufferedOutputStream = null;
Socket socket = null;
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(SOCKET_PORT);
while (true) {
System.out.println("Waiting...");
try {
socket = serverSocket.accept();
System.out.println("Accepted connection : " + socket);
int bytesRead;
int current = 0;
byte[] mybytearray = new byte[FILE_SIZE];
InputStream is = socket.getInputStream();
fileOutputStream = new FileOutputStream(FILE_TO_RECEIVED);
bufferedOutputStream = new BufferedOutputStream(bufferedOutputStream);
bytesRead = is.read(mybytearray, 0, mybytearray.length);
current = bytesRead;
do {
bytesRead =
is.read(mybytearray, current, (mybytearray.length - current));
if (bytesRead >= 0) current += bytesRead;
} while (bytesRead > -1);
bufferedOutputStream.write(mybytearray, 0, current);
bufferedOutputStream.flush();
System.out.println("File " + FILE_TO_RECEIVED
+ " recieved (" + current + " bytes read)");
} finally {
if (fileOutputStream != null) fileOutputStream.close();
if (bufferedOutputStream != null) bufferedOutputStream.close();
if (socket != null) socket.close();
}
}
} finally {
if (serverSocket != null) serverSocket.close();
}
}