-1

我已经使用以太网屏蔽在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。我该如何解决?

4

1 回答 1

0

尝试更改indexOf("connect") > 0indexOf("connect") >= 0.

或者更好的是,使用类似startsWith(返回布尔值)的东西,而不是indexOf你真正的意思。

于 2012-07-18T17:19:36.970 回答