我編寫客戶端 - 服務器應用程序。客戶端將在普通的java上運行在android和服務器上。我需要將數據從客戶端交換到服務器,然後從服務器交換到客戶端。我的問題是,當我從客戶端發送文件到服務器時,服務器停留在從套接字接收數據上。這裏是我的代碼:android java和套接字
客戶端發送文件:
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();
服務器獲取數據:
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;
服務器停留在服務器端線
while((bytesReceived = input.read(buffer))>0) {
out.write(buffer,0,bytesReceived);
}
。當我發送數據時,我想我需要在客戶端以某種方式發出信號。我知道我可以在客戶端編寫「output.close()」,然後服務器獲取文件並在while循環中斷開,但我將來需要此輸出。有誰知道我怎麼能發送這個文件,服務器不卡住?也許我需要以另一種方式發送此文件。謝謝你的幫助。