gpt4 book ai didi

Android 和 Arduino socket

转载 作者:行者123 更新时间:2023-11-29 21:04:44 25 4
gpt4 key购买 nike

我已经使用 Android 和 Arduino 创建了服务器和客户端,但我遇到了问题。 Android 只读取一次。为什么?这是我的代码:

安卓客户端:

new Thread(new ClientThread()).start();
}

class ClientThread implements Runnable {
@Override
public void run() {
try {
InetAddress serverAddr = InetAddress.getByName("192.168.1.240");
socket = new Socket(serverAddr, 8888);
if(socket == null)System.out.println("SOCKET NULL");
PrintWriter out = new PrintWriter(new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())),true);
inFromServer = new BufferedReader(new InputStreamReader(socket.getInputStream()));

while(true){
msgFromServer = inFromServer.readLine();
System.out.println(msgFromServer);

}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if (socket != null) {
System.out.println("STOP SOCKET");
// close socket
}
}
}
}

Arduino 服务器:

void loop() {

YunClient client = server.accept();
sensorValue = analogRead(sensorPin);
String myString = String(sensorValue);

if (client) {
String command = "none";
command = client.readString();
Serial.println(sensorValue);
client.print(myString+"\n");
}
}

洛卡特:

    07-24 11:44:24.468: D/OpenGLRenderer(19693): Enabling debug mode 0
07-24 11:44:25.363: I/System.out(19693): 121

121 是 Arduino 的值。但这只显示一次。

它只工作一次。我想每秒从 Arduino 接收数据。谢谢大家!

最佳答案

您需要将接受从循环中取出。否则它会发送一个字符串并等待来自客户端的另一个连接。

YunClient client = server.accept();
void loop() {

sensorValue = analogRead(sensorPin);
String myString = String(sensorValue);

if (client) {
String command = "none";
command = client.readString();
Serial.println(sensorValue);
client.print(myString+"\n");
}
}

此外,我看不到客户端向服务器发送内容的位置。 System.out.println 不应该是 out.println 吗?

关于Android 和 Arduino socket ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24930455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com