Android携帯からJavaサーバーにデータを送信しようとしています。 "ClientConnexion"スレッドを開始することによって、サーバーアプリケーションを実行し、そこから直接クライアントをシミュレートしました。 それはうまく動作し、データが来て、私はそれを読むことができます。Android携帯からJavaサーバーにデータを送信
はその後、私はそれとして、私のAndroidの携帯電話にミリアンペア「ClientConnexion」クラスをコピーします。
私のサーバー上でデバッグのとき、私は、接続が正しく確立されていることがわかりますが、データが入ってくることはなかったかのように機能の読み取りが、ブロックしています。 しかし、Android側のデバッグでは、それが送信されたようです。ここで
は私ClientConnexionコードです:
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Random;
public class Client implements Runnable{
private Socket connexion = null;
private PrintWriter writer = null;
private BufferedInputStream reader = null;
public Client(String host, int port){
try {
connexion = new Socket(host, port);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void run(){
try {
writer = new PrintWriter(connexion.getOutputStream(), true);
reader = new BufferedInputStream(connexion.getInputStream());
// COMMAND is received by server when emulating client directly from it
// COMMAND is NOT received when sent from Android mobile
writer.write("COMMAND");
writer.flush();
System.out.println("COMMAND sent");
String response = read();
System.out.println("Response : " + response);
}
catch (IOException e1) {
e1.printStackTrace();
}
writer.write("CLOSE");
writer.flush();
writer.close();
}
private String read() throws IOException{
String response = "";
int stream;
byte[] b = new byte[4096];
stream = reader.read(b);
response = new String(b, 0, stream);
return response;
}
}
のAndroidクライアント側で遮断することができるもの?例外はスローされません。
サーバーが読み取ろうとしているものを表示してください。 – greenapps