質問: server.available(); if(client){ Serial.println("new client"); while(client.connected()){ if(client.available()){ value=client.read(); Serial.println(value,sizeof(int)); delay(1000); } } } } ------------------------------------------------------------------------- /*クライアント側*/ #include const char *ssid="ESP32-WiFi"; //サーバーのSSID const char *pass="esp32wifi"; //サーバーのパスワード static WiFiClient client; //WiFiClient型でclientと宣言 void setup() { Serial.begin(9600); WiFi.begin(ssid,pass); //サーバーに接続 Serial.printf("\n"); while(WiFi.status()!=WL_CONNECTED) { Serial.print("."); delay(1000); } Serial.printf("\n"); Serial.println("WiFi Connected"); IPAddress ip(192,168,0,9); //サーバーのIPアドレス client.connect(ip,80); //IPアドレスとポート番号を指定して接続 } //試しに4バイトの値を送信 int value=35454; void loop() { delay(1000); if(client.connected()==true) { client.write((uint8_t*)&value,sizeof(int)); } } ``` ### 試したこと いきなりAD変換の値を送信せずにまず4バイトの整数を送信してみました。 ### 補足情報(FW/ツールのバージョンなど) 4バイトの整数を送信してみた結果を追加しました。 /*シリアルモニタの出力*/ WiFi connected SSID:ESP32-WiFi AP IP address:192.168.0.9 Server start! new client 1332 2022 0 0 1332 2022 0 0 1332 2022 0 0
回答: リファレンス を見る限り、テキストに変換して送られそうですが? なお、実際に送った値と受け取った値を質問に追記されるとわかりやすいと思われます。 1332は4進数と考えると、0x7E 2022は同様に、0x8A となります。 送られている、35454 は 16進数で 0x8A7E であるため、送信自体は問題なく、 確認用の表示に問題があると考えられます。 ArduinoのPrint系のフォーマットをリファレンス等で再確認されたほうがよいと思われます。