我通过套接字从 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 *
我怎么会在那里得到空值?我只是发送“你好”..
帮助将不胜感激,谢谢!
编辑: 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;
}