android - 从 Arduino 到 Android 的 Websocket : send integer instead of text

标签 android websocket arduino esp8266

我正在尝试使用 Link2004/Arduino WebSockets 库从作为服务器的 Wemos D1(ESP8266) 发送整数到使用 OkHttpClient 库的 Android 客户端,使用 sendBIN(num, buf, buf_len)如下:

int n=1234;
uint8_t * buf = (uint8_t *) &n;
size_t buf_len = sizeof(n);
webSocket.sendBIN(0,buf,buf_len); // num is set to 0, ( client # 0 )

但是我在 Android 端得到的不是 1234,而是 d2040000

Android 监听器看起来像这样:

public void onMessage(WebSocket webSocket, ByteString bytes) {
    output("Received bytes : " + bytes.hex());
}

正如我所说,TextView 输出的结果是 d2040000 而不是发送的 1234。

谁能澄清一下这个困惑?

最佳答案

字节0xd20x040x000x00是32位整数1234的字节在 little-endian format .

所以 d2040000 是这些字节的十六进制字符串。

关于android - 从 Arduino 到 Android 的 Websocket : send integer instead of text,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51968416/

相关文章:

java - Android Marshmallow 中的 SimpleDateFormat 行为更改

android: imageview 里面的按钮

java - 无法运行spring web socket demo

c++ - arduino if语句给出错误

c++ - Arduino编程添加毫秒延迟

android - youtubeExtractor for Android

android - 有哪些可能的参数可以传递给 getNetworkInfo()

asynchronous - 如何在 Actix-web 中的 WebSocket 处理程序中正确调用异步函数

javascript - 无同源连接策略下的WebSocket安全性

arduino - 从 SD 卡运行 arduino sketch