I write client-server application. Client will run on android and server on plain java. I need to exchange data from client to server and then from server to client. My proble is that when I send file from client to server the server stuck on receiving data from socket. Here is my code:
client send file:
Log.i("======", "sendToServer==============");
OutputStream output = sk.getOutputStream();
String pathToOurFile = directory + File.separator + file;
FileInputStream fileInputStream = new FileInputStream(pathToOurFile);
byte[] buffer = new byte[sk.getSendBufferSize()];
int bytesRead = 0;
while((bytesRead = fileInputStream.read(buffer))>0)
{
output.write(buffer,0,bytesRead);
}
fileInputStream.close();
server get the data:
System.out.println("I get data");
File file=null;
InputStream input = sk.getInputStream();
file = new File("C://protocolFIle/" + "temp.xml");
FileOutputStream out = new FileOutputStream(file);
byte[] buffer = new byte[sk.getReceiveBufferSize()];
int bytesReceived = 0;
while((bytesReceived = input.read(buffer))>0) {
out.write(buffer,0,bytesReceived);
}
return file;
server stuck on line
while((bytesReceived = input.read(buffer))>0) {
out.write(buffer,0,bytesReceived);
}
on server side. I think I need to signal somehow in client side when I finish send data. I know I can write "output.close()" on client side and then server get file and break while loop but I need this output in future. Do anyone know how can I send this file that server dont stuck? Maybe I need to send this file in another way. Thanks for any help.