我已经使用以太网屏蔽在Arduino Leonardo上设置了一个服务器。通过套接字连接,我可以将我的 Android 应用程序中的字符串发送到我可以成功读取的 Arduino。我的 Arduino 代码的一部分是:
if (client.available() > 0) {
char thisChar = client.read();
if (readString.length() < 30){
readString.concat(thisChar);
}
if (thisChar == '\n') {
if (readString.indexOf("connect") > 0) {
client.print("connection_ok");
}
if (readString.indexOf("change") >= 0) {
changeLedState(); // Set the LED on
}
}
}
虽然我的 Android 代码是:
Socket s = new Socket("192.168.0.177",23);
PrintWriter out = new PrintWriter(s.getOutputStream(), true);
if (s.isConnected()){
out.println("connect\n");
BufferedReader r = new BufferedReader(new InputStreamReader(s.getInputStream()));
String line = r.readLine();
}
我的 Android 应用程序总是在readLine();
. 如果我使用out.print ("change");
,changeLedState 真的会发生,所以我知道我可以从我的 Android 应用程序中读取输出字符串,但我还没有设法将输入字符串从 Arduino 读取到 Android。我该如何解决?