Kirjoittaja Aihe: socat ja kellonajat  (Luettu 86 kertaa)

Mistofelees

  • Käyttäjä
  • Viestejä: 715
    • Profiili
socat ja kellonajat
« : 26.10.26 - klo:15.56 »
socat on kätevä, mutta hieman hankala ohjelma tiedon siirtoon esimerkiksi Arduinolta palvelimelle.
Dokumentaatiota on monta metriä ja joukosta on työlästä poimia oikeita parametrejä ja oikeaa syntaksia.
Melkeimpä toivoisi, että olisi socat:a yksinkertaisempi työkalu tälläiseen yksinkertaiseen käyttöön.
NC:llä pystyy kikkailemalla tekemään saman, mutta omissa kokeiluissa nc tuotti ongelmia.

Sain jo systeemin toimimaan, mutta sitten menin lisäämään yhden kaksoispisteen paikkaan, jossa en olisi sen kuvitellut vaikuttavan mitään

Leike toimivasta scriptistä:
Koodia: [Valitse]
#!/usr/bin/bash
PORT=12345
saapuneet="/hakemisto/tiedosto.txt"
vastaus=$(date "+%H%M")
socat -d0 TCP-LISTEN:$PORT,readbytes=100,fork SYSTEM:"/usr/bin/echo $vastaus;/usr/bin/cat>>$saapuneet"&

Muutetaan tuota vastaus=$(date "+%H%M") lisäämällä kaksoispiste tuntien ja minuuttien väliin:
vastaus=$(date "+%H:%M")
Eipäs toimikaan enää. Socat itkee virheestä, liikaa adresseja.

(Tuo scripti siis ottaa vastaan ESP8266:n lähettämän TCP datapaketin ja vastaa palauttamalla kellonajan.
Samalla voisi palauttaa enemmänkin parametrejä, mutta koska tämä scripti palvelee useita hyvin erilaisia laitteita, joutuisi vastauslausekkeen muotoa miettimään tarkemmmin.)