私はクライアント - サーバーアプリケーションを記述します。クライアントはプレーンなJava上でアンドロイドとサーバー上で動作します。私はクライアントからサーバーへ、そしてサーバーからクライアントへデータを交換する必要があります。私は、クライアントからサーバーにファイルを送信するときに、サーバーがソケットからデータを受け取っていることを知っています。ここに私のコードは次のとおりです。ライン、サーバー側のアンドロイドのJavaとソケット
while((bytesReceived = input.read(buffer))>0) {
out.write(buffer,0,bytesReceived);
}
に貼り付け
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;
がサーバ:
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();
サーバーがデータを取得する:
クライアントがファイルを送信します。私はデータを送信し終えたら何とかクライアント側で信号を送る必要があると思う。私はクライアント側で "output.close()"を書くことができると知っているし、サーバはファイルを取得しwhileループを中断しますが、将来この出力が必要になります。誰も知っているどのように私はこのファイルを送信することはできませんサーバーは固執しない?多分私は別の方法でこのファイルを送る必要があります。助けてくれてありがとう。