漸くC言語でクライアント・サーバなソケット通信プログラムのサンプルが動いた。
ネット上のサンプルと、微妙にヘッダファイルの名前やパスが違っていて手こずった。
これで、C/C++/python の3言語で、それぞれクライアントとサーバのサンプルが動いたことになる。
あ、そういえばあと nc(netcat)によるクライアント・サーバもあった(^^)
本番は、サーバ側はC++または python, クライアント側は C言語になる予定。その理由は、サーバ側は
を想定している。
クライアント側は IoT なデバイスとして
- ESP32
- ESP8266(WROOM-02)
- RasPi Zero W
- mbed(Nucreo) + ESP8266
といったものを想定している。なので、クライアント側はほぼC言語、サーバ側はなんでもありだ。
本来は、送受信するデータ構造の設計が必要。ネットワークバイトオーダや、構造体のパディングなどを考慮して、送信データにするための変換処理が必要。
- 固定長文字列
- 構造体
- ヘッダ(データサイズ)
- データの欠損/破壊等の検出用フラグ
など、真面目に考えると大変。可変長に対応するとか、ヘッダの構造が複雑になる。