可変長のデータを含むUDPソケット通信のやり方が分からず、色々思考錯誤した結果をまとめてみます。間違いやもっと効率的なやり方があれば教えてください! (2009/03/27)コード例の一部が間違っていました。指摘してくれたsatsumaさん、ありがとうございます。 問題設定 struct msg { uint8_t type; uint8_t value; uint16_t packet_size; // パケットのサイズ char data[]; // 可変長データ } data部分が可変長であるようなパケットをUDPでやりとりするプログラムを考えます。可変長部分はクライアントが任意のデータを入れるとします。type、value、packet_sizeはヘッダーです。 これと同じパケットフォーマットで何人かがクライアントとサーバを実装しています。しかし、人によってデータ長部分の長さが違う