Android アプリから Java プログラムにソケット経由でメッセージを送信します。このメッセージは、プリントライターで送信されます。
AndroidからJavaプログラムにメッセージを送信する方法は次のとおりです。
out.println("Hello there");
out.flush();
これは私がメッセージを受け取る方法です:
while(true){
String msg = in.readLine();
System.out.println("MSG: " + msg);
...some if-statements...
}
System.out.println の出力は次のとおりです。 MSG: Hello there * MSG: null *
なぜそこにnullになるのですか?「こんばんは」だけ送っています。
助けていただければ幸いです、ありがとう!
編集: Java プログラムの実際のコード。
while (run) {
String msg = in.readLine();
String[] parts;
String username;
String password = null;
System.out.println("MSG: " + msg);
parts = msg.split("\\*");
username = parts[0];
password = parts[1];
boolean validUser = false;
validUser = db.authenticate(username, password);
if (validUser) {
db.updateIP(username, socket.getInetAddress().getHostAddress());
out.println("done");
out.flush();
} else {
out.println("loginfail");
out.flush();
closeSocketConnection();
}
}
}
private void closeSocketConnection() throws IOException {
in.close();
out.close();
socket.close();
run = false;
}