Gelöscht

//Gelöscht

Gelöscht

syntaxerr3: Wirklich keiner?

Ich kenne mich zwar mit der Programmierung Deines Server-Programms überhaupt nicht aus, aber für mich sieht das so aus, als wenn der Server nach Erkennen einer Client-Verbindung genau einmal einen Lesevorgang macht und dann die Verbindung cancelt.

Zwischen den Zeilen:

     printf("Warte auf CLIENT_READY Ereignis.!\n");

und

    retval = close (temp_sock);

sollte wohl eher eine Einleseschleife stehen, die mit Timeout so lange auf das Eintreffen von Daten prüft, bis während einer Timeout-Zeit keinerlei Daten mehr eintreffen.

Wenn allerdings nur wenige Daten gesendet werden, passen diese ja auch in ein einziges Netzwerk-Datenpaket hinein. Dann ist es natürlich kontraproduktiv, die Daten vom Arduino aus mit jeweils einem neuen Schreibbefehl in viele einzelne Netzwerk-Datenpakete aufzuteilen und in jedem Datenpaket nur ein einzelnes Bytes zu versenden:

      client.write(0x1f);  // Sende erstes Byte in einem Netzwerk-Datenpaket
      client.write(0x2f);  // Sende zweites Byte in einem zweiten Netzwerk-Datenpaket
      client.write(0x3f);  // Sende drittes Byte in einem dritten Netzwerk-Datenpaket
      client.write(0x4f);  // etc. etc. etc.
      client.write(0x5f);
      client.write(0x6f);

Warum packst Du die Daten nicht in einen Datenpuffer und sendest sie in einem einzigen Rutsch?

Solange es nur wenige Daten sind, werden diese dann in einem einzigen Datenpaket gesendet und in einem einzigen Datenpaket empfangen, und Du brauchst die Daten beim Empfänger dann nicht einzeln aus verschiedenen eintreffenden Paketen dann wieder mit Timeout-Schleife zusammenstückeln.

Einen Puffer in einem Rutsch sendest Du zum Beispiel so:

 byte buffer[]={0x1f,0x2f,0x3f,0x4f,0x5f,0x6f};
 client.write(buffer,sizeof(buffer));

Das sollte dann in einem einzigen Netzwerkpaket gesendet werden und kommt beim Empfänger daher auch in einem Rutsch an.

Wie niedrig willst Du auch den Netzwerkdurchsatz drücken? Ein Netzwerkpaket ist meines Erachtens nach mit Overhead deutlich über 1000 Bytes groß. Wenn Du nun immer Pakete von über 1000 Bytes Größe verschickst, nur um mit 6 Paketen 6 einzelne Bytes zu versenden, dann schickst Du doch auch den Netzwerk-Datendurchsatz voll in Keller. 6 Bytes passen in EIN Netzwerk-Datenpaket und sollten daher auch in einem Paket versendet werden.

Insbesondere dann, wenn Du damit Probleme hast, nacheinander eintreffende Daten mit einer Timeout-Einleseschleife einzulesen und die Daten aus einzeln empfangenen Bytes wieder zusammenzusetzen.

//Gelöscht