我编写客户端 - 服务器应用程序。客户端将在普通的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循环中断开,但我将来需要此输出。有谁知道我怎么能发送这个文件,服务器不卡住?也许我需要以另一种方式发送此文件。谢谢你的帮助。